readme and uml
This commit is contained in:
29
README.md
29
README.md
@@ -1,7 +1,34 @@
|
||||
# Gomoku
|
||||
|
||||
## how to build and run
|
||||
## How to build and run
|
||||
```bash
|
||||
javac -d build src/*java
|
||||
java -cp src/GomokuGame
|
||||
```
|
||||
|
||||
## Structure
|
||||
!(UML)[UML.png]
|
||||
|
||||
Pour commencer, nous avons créé deux énumérations : une pour les couleurs, nommée `Color`,
|
||||
et une autre pour les directions cardinales, nommée `Cardinal`. Les couleurs sont utilisées
|
||||
pour les jetons placés sur le plateau. Les directions nous permettent de naviguer dans la grille
|
||||
de cellules, qui est liée dans les huit directions cardinales.
|
||||
|
||||
Nous avons une classe abstraite représentant le joueur, nommée `Player`, qui se décline en deux classes :
|
||||
- `Human`, qui sollicite l'utilisateur pour jouer son tour,
|
||||
- `GomokuAI`, qui représente un joueur contrôlé par l'ordinateur.
|
||||
|
||||
Pour la zone de jeu, nous avons une classe `GomokuCell` qui représente une case possédant tous
|
||||
ses voisins dans les huit directions ainsi que la couleur du jeton placé sur cette case.
|
||||
Une autre classe, `GomokuBoard`, contient la cellule située en haut à gauche du plateau.
|
||||
C'est à partir de cette cellule que nous parcourons l'ensemble du jeu. Cette classe génère le plateau, les extensions du plateau, etc.
|
||||
|
||||
Pour lancer le jeu, nous avons la classe `GomokuGame` qui possède une méthode `main` et accepte
|
||||
des paramètres si l'utilisateur le souhaite. Elle crée la partie et la boucle de jeu, et contient :
|
||||
- Les deux joueurs,
|
||||
- Le plateau,
|
||||
- Le nombre de cellules alignées nécessaires pour gagner, etc.
|
||||
|
||||
Pour le rendu, nous avons une classe abstraite `GomokuRenderer` qui se décline en `ConsoleRenderer`,
|
||||
permettant l'affichage du plateau dans le terminal. La classe abstraite existe pour faciliter le remplacement
|
||||
du renderer si nécessaire à l'avenir.
|
||||
|
||||
Reference in New Issue
Block a user