2026-02-06 01:32:24 +01:00
# BUT3 – Projet Jeu : Hex
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
Il s’ agit d’ une implémentation du jeu **Hex ** en Java, développée à partir de l’ API 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.
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
## Compilation
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
Depuis la racine du projet, compiler l’ ensemble des fichiers Java avec la commande suivante :
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
```bash
javac -d build $(find javaAPI -name "*.java")
2025-10-16 10:53:54 +02:00
```
2026-02-06 01:32:24 +01:00
Les fichiers compilés (`.class` ) sont générés dans le dossier `bin` .
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
## Lancer une démonstration
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
### Partie automatique (bot)
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
```bash
java -cp build fr.iut_fbleau.HexGame.HexMain 3 autoplay
```
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
Ce mode permet de lancer une partie entièrement automatique en utilisant le bot implémenté dans la classe `Simulation` .
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
### Partie interactive (joueur humain)
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
```bash
java -cp build fr.iut_fbleau.HexGame.HexMain
```
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
Le plateau s’ affiche dans le terminal et les coups sont entrés sous forme de coordonnées.
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
## Tests et validation
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
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.
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
L’ affichage console du plateau, fourni par la méthode `HexBoard.toString()` , est utilisé comme outil de debug pour visualiser l’ état du jeu à chaque tour.
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
## Organisation du projet
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
- `HexBoard` : représentation du plateau et gestion des règles du jeu
- `HexPly` : représentation d’ un coup
- `Simulation` : bot basé sur une recherche Minimax à profondeur limitée
- `HexMain` : point d’ entrée du programme
2025-10-16 10:53:54 +02:00
2026-02-06 01:32:24 +01:00
Les classes principales sont documentées à l’ aide de **Javadoc ** .