Files
escampe-ia/README.md
Ethan Puyaubreau e508efa14f Joueur IA Escampe (Puyaubreau/Russac) — version finale
Joueur alpha-bêta + iterative deepening pour le tournoi APP5 « IA et contraintes ».

- src/escampe/ : joueur (IJoueur), moteur (alpha-bêta + DFS bitmask, make/unmake
  sans allocation), modèle EscampeBoard (Partie1), utilitaires de test.
- Protocole arbitre vérifié (pass="E", carte des liserés identique au serveur,
  machine à états placement/jeu) ; 7/7 victoires vs joueur aléatoire, 0 illégal.
- Vérifications : VerifMoves (int≡String, 0 divergence/142k positions),
  RulesTest (21/21), Branching (facteur de branchement mesuré).
- Rapport : report/rapport.html + tools/make_report_pdf.py (PyMuPDF) → PDF, RAPPORT.md.
- Livrables buildés inclus (dist/ : jar, mainClass, tgz, rapport PDF) + lib/escampeobf.jar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 16:00:29 +02:00

2.3 KiB

Escampe — Joueur IA (Puyaubreau / Russac)

Joueur artificiel pour le jeu Escampe, devoir « IA et contraintes » (Polytech Paris-Saclay, APP5, 2025-2026). Le joueur dialogue avec l'arbitre du tournoi via une interface réseau et choisit ses coups par recherche **alpha-bêta

  • approfondissement itératif**.

Démarrage rapide

bash build.sh                 # compile, produit le jar, mainClass, l'archive et le rapport PDF

Tout est produit dans dist/. Pour jouer ou tester :

# Une partie arbitrée : notre IA contre le joueur aléatoire fourni
bash scripts/match.sh

# Sous Windows, en local (double-clic) :
jouer-vs-IA.bat        # vous (humain) contre notre IA
jouer-vs-pote.bat      # deux humains

Le serveur de jeu et les joueurs de référence sont dans lib/escampeobf.jar (fourni avec le sujet). Voir MULTIJOUEUR.md pour le jeu à distance.

Structure

Chemin Rôle
src/escampe/ Sources Java (paquetage escampe)
src/escampe/JoueurPuyaubreauRussac.java Le joueur (interface IJoueur)
src/escampe/Moteur.java Recherche alpha-bêta + heuristique
src/escampe/EscampeBoard.java Modèle de jeu (interface Partie1)
src/escampe/{VerifMoves,RulesTest,Bench,Branching}.java Utilitaires de test (hors jar de production)
report/rapport.html · tools/make_report_pdf.py Source du rapport et générateur PDF
RAPPORT.md Rapport (version Markdown)
build.sh Build reproductible
lib/escampeobf.jar Serveur d'arbitre + joueurs de référence (fournis)
dist/ Livrables buildés (jar, mainClass, archive, rapport PDF)

Livrables de la version finale (dans dist/)

  • Puyaubreau_Russac.jar — jar exécutable (point d'entrée escampe.ClientJeu)
  • mainClass — descripteur du tournoi (jar / clientClass / mainClass)
  • Puyaubreau_Russac.tgz — archive de rendu (src/ + mainClass + jar)
  • Puyaubreau_Russac_rapport.pdf — rapport

Tests

javac -d out src/escampe/*.java
java -cp out escampe.VerifMoves     # chemin de recherche ≡ règles vérifiées (0 divergence)
java -cp out escampe.RulesTest      # tests de règles (21/21)
java -cp out escampe.Bench 3000 8   # profondeur / vitesse du moteur
java -cp out escampe.Branching      # facteur de branchement