Skip to content

My Implementation of the game Abalone in C++

Notifications You must be signed in to change notification settings

alahyaoui/Abalone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Dans ce depôt se trouve mon projet de DEV4 en BA2 à L'ESI Abalone.

Le projet respectera le design pattern MVC mais implementera aussi d'autre design patern tel que le design pattern Observer/Observable. Ce depôt sera continuellement mis a jour par les deux membres du binôme en fonction de l'avancée du projet.

Description d'Abalone:

Abalone est un jeu de stratégie combinatoire abstrait où s’affrontent deux joueurs. Un joueur joue avec des billes blanches, l’autre avec des billes noires. Le but du jeu est d’être le premier à faire sortir 6 billes adverses du plan de jeu en les poussant avec ses propres billes.

Confer : Wikipedia

Auteurs de ce projet:

Lahyaoui Ayoub

Rapport

Modélisation métier:

alt text

Model : Interface représentant l'interface Model du design pattern MVC.

Game : Classe qui rassemble les éléments nécessaire du jeu pour pouvoir présenter une facade à la vue.

GameStatus : Enumération représentant les différents états du jeu.

Board : Classe représentant le tableau de jeu, un Board est composé de tableaux d'hexagones.

Hexagon : Classe représentant une case du tableau, elle a un attribut _isFree mis a vrai lors du déplacement d'une bille sur la case et un attribut de type enumération définissant le type de la l'hexagon.

HexagonType : Enumération représentant le type de l'hexagon.

Player : Classe représentant un joueur, il possède un statut (PlayerStatus), une couleur et un compteur de bille perdue.

PlayerStatus : Enumération représentant le statut du joueur.

Color : Enumération représentant la couleur du joueur et de billes.

Marble : Classe représentant une bille sur le tableau de jeu, une bille possède une position sur le tableau et une couleur.

Position : Classe représentant une position du tableau.

Direction : Enumération représentant une direction d'un mouvement, sera utile lors de l'automatisation de la vérification de la présence de billes dans la direction du mouvement donné.

Date de remise:

vendredi 19 février 2021 à 18h00.

Implémentation Console:

Execution : Ouvrir le projet avec QTcreator, compiler puis executer.

Utilisation: Le projet respecte la notation ABA-PRO.

alt text

Notation des coups ABA-PRO

Les mouvements au jeu Abalone peuvent être de deux types :

  • Déplacement en ligne : quand on déplace une bille (ou plusieurs) dans une direction. On indique un tel mouvement par la position de départ suivie de la position d'arrivée de la bille. Si on déplace un groupe de billes on décrit toujours le déplacement de la bille en "queue" du mouvement. C'est-à-dire celle sur laquelle on pousserait pour effectuer ce déplacement. Par exemple, le mouvement I8H7, dénote le déplacement de la bille de la position I8 à la position H7. Le déplacement de cette bille correspond en fait au déplacement de tout un groupe de trois billes blanches (on pousse le groupe d'une case dans une direction).

  • Déplacement latéral : quand on déplace deux ou trois billes latéralement. Un tel mouvement est indiqué par la position de la première bille du groupe, suivie de la position de la dernière bille du groupe, et enfin suivie de la position d'arrivée de la première bille mentionnée. Par exemple, le mouvement C3C5D3, dénote le déplacement du groupe de trois billes entre C3 et C5 vers la position où la première se trouve en D3.

Confer : Page 9-10 de l'énoncé du projet Abalone 2020-2021 Esi He2b

Date de remise:

vendredi 2 avril 2021 à 18h00.

Implémentation Graphique:

Execution :

Windows -> ouvrir le dossier "Executable" a la racine du projet et executer l'installer dans Executable/Windows/installer.exe.

Linux -> executer en ligne de commande l'executable Executable/abalone-Gui.

Si vous rencontrez des difficultés à executer le projet avec l'une des manières énoncés vous pouvez toujour ouvrir le projet avec Qtcreator, compiler puis executer.

Utilisation: Le projet respecte la notation ABA-PRO.

Cliquer sur l'image ci dessous pour voir la vidéo expliquative.

Watch the video

Notation des coups ABA-PRO

Les mouvements au jeu Abalone peuvent être de deux types :

  • Déplacement en ligne : On indique un tel mouvement en cliquant sur la bille à déplacer puis en suite en cliquant à nouveau mais cette fois-ci sur la case ou sur la bille (celle si se trouvant sur une ligne différente) dans la direction du mouvement.

  • Déplacement sur la même ligne non latéral : On indique un tel mouvement en cliquant sur la bille à déplacer puis ensuite en effectuant cette fois ci un clique droit sur la bille a proximité dans la direction du mouvement.

  • Déplacement latéral : On indique un tel mouvement par un clique sur la position de la première bille du groupe, suivie d'un clique sur la position de la dernière bille du groupe suivi d'un clique sur la position de l'hexagone sur lequel l'on veut se déplacer.

Remarque : Pour annuler un mouvement il vous suffit d'appuyer sur la touche ESC de votre clavier.

Date de remise:

vendredi 7 mai 2021 à 18h00

About

My Implementation of the game Abalone in C++

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published