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%