Ethan Puyaubreau 052a3bf978 Rapport : intègre les ajouts du binôme + passe de relecture
- Sommaire, exemple tactique Q4 (figure 6) et note « pas de bibliothèque
  d'ouvertures » repris du commit d'Antonin et portés dans report/rapport.html
  (source du PDF), jusque-là seulement dans RAPPORT.md.
- Exemple Q4 vérifié contre TILE_MAP : liserés D4/F6=2, E5=1, A2/C2=3 et chemin
  de capture C2→D2→D1→C1 (3 pas = liseré de C2) tous corrects.
- Relecture du style sur tout le rapport ; correction de deux coquilles
  (« énnoncé », ancre de sommaire). HTML et RAPPORT.md tenus en miroir.
- PDF régénéré (9 pages, sommaire inclus) ; chiffres mesurés inchangés.

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

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
Description
Joueur IA Escampe (Puyaubreau/Russac) - Polytech APP5 IA & contraintes
Readme 1.7 MiB
Languages
Java 75.2%
HTML 16.5%
Shell 3.7%
Python 3.1%
Batchfile 1.5%