Skip to content

mayel15/game2048

Repository files navigation

Jeu 2️⃣0️⃣4️⃣8️⃣

Alaaeddin ALMAJJO Pape THIAM
Alaaeddin ALMAJJO Pape THIAM
22001993 22009010
@aladinMJ @mayel15
[email protected] [email protected]

📱 Demo du jeu

alt text

🧰 Technos utilisées

angular angular

➕ More

  • provider

🧐 Description du projet et choix d'implémentation

📄 Description du projet

Ce projet est une implémentation du célébre jeu 2048.

⚙️ Choix d'implémentation

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 enum Directionavec les champs horizontalet vertical, afin de savoir dans quelle direction se fera le mouvement de la grille de jeu
    • swipe-type.enum.dart qui définit le type enum SwipeType afin de preciser le sens du swipe lors du jeu avec les champs left, right, up, down
  • models contient le fichier:

    • game.model.dart avec GameModel 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 de GameModel à travers provider :

    • home.page.dart qui représente l'écran principal du jeu
    • game-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 4x4
    • score.widget.dart avec ScoreWidgetqui prend en paramètres le score et le label indiquant le type de score
    • current-score.widget.dart avec CurrentScoreWidgetqui va utiliser le widget ScoreWidget en consommant le model GameModel à travers provider afin d'updater le current score
    • custom-button.widget.dart avec CustomButtonWidget et custom-text.widget.dart avec CustomTextWidget qui sont des cusomisations des widgets Button et Text qui existent déjà.

Cloner le projet

  • Pré-requis: Vous devez avoir un émulateur android (avec Android Studio) ou un émulateur ios (avec Xcode) et le SDK 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 🥳

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published