Files
BUT3ProjetJeuGroupe/README.md
2026-02-06 01:32:24 +01:00

56 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BUT3 Projet Jeu : Hex
Il sagit dune implémentation du jeu **Hex** en Java, développée à partir de lAPI fournie par le Monsieur Madelaine.
Le projet comprend un moteur de jeu fonctionnel, un affichage console pour le debug, ainsi que des bots permettant de jouer automatiquement.
## Compilation
Depuis la racine du projet, compiler lensemble des fichiers Java avec la commande suivante :
```bash
javac -d build $(find javaAPI -name "*.java")
```
Les fichiers compilés (`.class`) sont générés dans le dossier `bin`.
## Lancer une démonstration
### Partie automatique (bot)
```bash
java -cp build fr.iut_fbleau.HexGame.HexMain 3 autoplay
```
Ce mode permet de lancer une partie entièrement automatique en utilisant le bot implémenté dans la classe `Simulation`.
### Partie interactive (joueur humain)
```bash
java -cp build fr.iut_fbleau.HexGame.HexMain
```
Le plateau saffiche dans le terminal et les coups sont entrés sous forme de coordonnées.
## Tests et validation
Les tests sont réalisés sous forme de **tests fonctionnels** via des méthodes `main` et des modes de démonstration :
- vérification de la validité des coups,
- alternance correcte des joueurs,
- détection des conditions de fin de partie,
- exécution de parties complètes en mode automatique.
Laffichage console du plateau, fourni par la méthode `HexBoard.toString()`, est utilisé comme outil de debug pour visualiser létat du jeu à chaque tour.
## Organisation du projet
- `HexBoard` : représentation du plateau et gestion des règles du jeu
- `HexPly` : représentation dun coup
- `Simulation` : bot basé sur une recherche Minimax à profondeur limitée
- `HexMain` : point dentrée du programme
Les classes principales sont documentées à laide de **Javadoc**.