Alaaeddin ALMAJJO | Pape THIAM |
22001993 | 22009010 |
@aladinMJ | @mayel15 |
[email protected] | [email protected] |
- provider
Ce projet est une implémentation du célébre jeu 2048
.
- Pour en savoir plus sur les règles et comment fonctionne le jeu: jeu 2048 - wikipedia
- Pour prendre en main facilement le jeu et y jouer: jeu 2048 - en ligne
Le code source du projet se trouve dans le dossier lib
qui contient le dossier src
et le fichier main.dart
. Le dossier src
est structuré comme suit :
├── enums
├── models
├── pages
└── widgets
-
enums
contient les fichiers:direction.enum.dart
qui definit le type enumDirection
avec les champshorizontal
etvertical
, afin de savoir dans quelle direction se fera le mouvement de la grille de jeuswipe-type.enum.dart
qui définit le type enumSwipeType
afin de preciser le sens du swipe lors du jeu avec les champsleft
,right
,up
,down
-
models
contient le fichier:game.model.dart
avecGameModel
qui permet de définir les structure données et toutes les algorithmes nécessaires pour vérifier les règles du jeu, jouer, mettre à jour le score vérifier si c'est gagné ou si c'est perdu
-
pages
contient les fichiers consommant directement ou indirectement des données deGameModel
à traversprovider
:home.page.dart
qui représente l'écran principal du jeugame-won.page.dart
qui représente l'écran qui va s'afficher lorsque le jeu est gagnégame-over.page.dart
qui représente l'écran qui va s'afficher lorsque le jeu est perdu
-
widgets
contient des composants/widgets personnalisés qui sont paramétrables et utilisatbles/reutilisables partout dans le projet. Et c'est eux qui définissent les pages du jeu. Parmi les widgets, on a:swipe-detector.widget.dart
qui prend en paramètres 4 types de callback selon le sens du swipe (haut, bas, gauche, droite)grid.widget.dart
qui prend en paramètre une liste de liste d'entier et retourne en rendu une grille de 2 dimenensions 4x4score.widget.dart
avecScoreWidget
qui prend en paramètres lescore
et lelabel
indiquant le type de scorecurrent-score.widget.dart
avecCurrentScoreWidget
qui va utiliser le widgetScoreWidget
en consommant le modelGameModel
à travers provider afin d'updater lecurrent score
custom-button.widget.dart
avecCustomButtonWidget
etcustom-text.widget.dart
avecCustomTextWidget
qui sont des cusomisations des widgetsButton
etText
qui existent déjà.
-
Pré-requis: Vous devez avoir un émulateur
android (avec Android Studio)
ou un émulateurios (avec Xcode)
et leSDK flutter
installé sur votre ordinateur avec les versions suivantes de préférence :Flutter v3.24.1
Dart v3.5.1
-
Cloner le projet avec
git clone https://github.com/mayel15/game2048.git
-
Aller dans le répertoire du projet
-
Installer les dépendances avec
flutter packages get
-
Lancer l'application et jouer 🥳