Mise à jour de 'Conception'

master
Pauline PRADY 11 months ago
parent 2c08c417ac
commit 0b88f3f983

@ -223,45 +223,45 @@ package System <<Rectangle>> {
### Description de l'architecture
#### La classe Partie :
#### La classe Partie
La classe Partie est le point central de notre application, orchestrant les différentes phases du jeu. Partie est une classe, car elle centralise la logique de contrôle du jeu. Une classe permet de regrouper les méthodes et les événements nécessaires pour orchestrer les différentes phases du jeu.<br>
Afin de jouer une partie facilement, une partie a besoin des règles choisies. Il suffit alors d'écouter les événements et de démarrer la partie.<br>
La classe va alors faire tout le déroulement dune partie grâce aux règles et elle va notifier son avancement au travers des événements. Plusieurs gestionnaires d'événements (EventHandler) sont définis pour différentes actions comme demander un joueur, débuter une partie, ajouter un joueur, commencer un nouveau tour, et cetera.<br>
Les méthodes, QuandDemanderJoueur, QuandAjouterJoueur, QuandDebutPartie, et cetera, permettent de définir le comportement du jeu à différentes étapes. Ces méthodes sont conçues pour être appelées lors des événements correspondants.
#### L'interface IRegles :
#### L'interface IRegles
Afin de pouvoir jouer aux différents modes de notre jeu, il existe linterface IRegles. Cette interface nous donne des informations importantes sur la partie.<br>
Il y a le nom, le nombre de tours maximum, le nombre de joueurs possibles, la taille d'un code. Mais également le joueur actuel, son plateau, et la possibilité de générer un code vide, définissent les paramètres essentiels des règles du jeu.<br>
Enfin, elle permet de connaître l'état de la partie, les gagnants et/ou les perdants.<br>
L'interface IRegles définit donc les propriétés et les méthodes que toute règle de jeu doit implémenter.
#### La classe ReglesClassiques :
#### La classe ReglesClassiques
Elle implémente IRegles. Ainsi, elle permet de jouer à une version classique du Mastermind. Deux joueurs s'affrontent au cours de douze tours pour essayer de trouver en premier le code à quatre couleurs.<br>
Les attributs nbJoueurs et joueurCourant permettent de suivre l'état de la partie.
#### La classe Joueur :
#### La classe Joueur
Elle représente un joueur dans le jeu. Joueur est une classe, car elle nous permet d'encapsuler les données propres à chaque joueur et les comportements associés. Cela facilite la gestion de l'état et des actions de chaque joueur de manière isolée.<br>
Un joueur possède un nom et un plateau. À lappel du constructeur, on fournit le nom du joueur et son plateau de jeu associé. Ils ne pourront pas être modifiés.
#### La classe Plateau :
#### La classe Plateau
Elle gère l'état du plateau de jeu dun joueur. Plateau est une classe, car cest idéale pour encapsuler la logique complexe de manipulation des jetons, de vérification des codes, et de gestion de l'état de la partie pour un joueur.<br>
À la construction, le plateau a besoin d'une taille pour la grille et de la taille de ses codes. Les propriétés tailleCode, Victoire et Tour indiquent l'état actuel du plateau.<br>
De plus, il génère un code aléatoire qui lui est personnel et qu'il gardera tout au long de son existence. Il est ensuite possible de lui insérer un code complet qu'il ajoute dans un tableau. Lorsque ce code est inséré, il vérifie si ce dernier est le code secret, et génère les indicateurs de bonne couleur et de bonne place, qu'il ajoute aussi dans un tableau.<br>
Il est possible d'obtenir ces deux tableaux afin de connaître les codes déjà joués et les résultats des tours précédents.
#### La classe Code :
#### La classe Code
Elle représente une séquence de jetons, qui est le code que les joueurs souhaitent essayer.<br>
Un code possède une taille qui doit être respectée. Il est possible de lui ajouter un jeton ou de supprimer le dernier jeton ajouté. Il est aussi possible d'obtenir un ou tous les jetons et de savoir si le code est complet ou non.<br>
Enfin, lune des méthodes permet de comparer le code entré par le joueur et son code secret, ce qui permet de renvoyer les indicateurs nécessaires au joueur pour trouver son code secret.
#### La structure Jeton :
#### La structure Jeton
La structure Jeton représente un jeton avec une couleur spécifique. La couleur du jeton est accessible mais pas modifiable.
#### L'énumération Indicateur :
#### L'énumération Indicateur
Indicateur est une énumération qui possède deux valeurs : BONNE COULEUR et BONNE PLACE. Cest une énumération, car elle représente un ensemble fixe de valeurs possibles.<br>
Si le code couleur proposé par lun des joueurs, possède un jeton de la bonne couleur, mais à la mauvaise place, un indicateur BONNE COULEUR sera donné. Si le code possède un jeton de la bonne couleur et à la bonne place, un indicateur BONNE PLACE sera donné. Nous avons choisi une énumération pour cette structure, car les énumérations offrent des noms symboliques significatifs, ce qui rend le code plus lisible et moins sujet aux erreurs.
#### L'énumération Couleur :
#### L'énumération Couleur
Couleur contient toutes les couleurs possibles que peut prendre un jeton. Cest également une énumération tout comme Indicateur, car elle représente un ensemble fini de couleurs possibles pour les jetons.<br>
On y retrouve le rouge, le vert, le bleu, le jaune, le noir et le blanc. Tout comme lénumération Indicateur, nous avons choisi une énumération, car il sagit dune structure simple et que les noms symboliques rendent le code plus lisible et est moins sujet aux erreurs.

Loading…
Cancel
Save