35 lines
1.7 KiB
Markdown
35 lines
1.7 KiB
Markdown
# Gomoku
|
|
|
|
## How to build and run
|
|
```bash
|
|
javac -d build src/*java
|
|
java -cp src/GomokuGame
|
|
```
|
|
|
|
## Structure
|
|

|
|
|
|
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.
|