diff --git a/README.md b/README.md index 93f2f0e..9017243 100644 --- a/README.md +++ b/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. diff --git a/UML.png b/UML.png new file mode 100644 index 0000000..fe158e1 Binary files /dev/null and b/UML.png differ