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>
This commit is contained in:
2026-05-30 16:00:29 +02:00
commit e508efa14f
50 changed files with 6521 additions and 0 deletions

29
jouer-vs-IA.bat Normal file
View File

@@ -0,0 +1,29 @@
@echo off
REM ==========================================================================
REM Escampe — jouer (humain) contre notre IA, en local, sur cette machine.
REM Ouvre 3 fenetres : serveur, IA, et VOUS. Jouez dans la fenetre "VOUS".
REM ==========================================================================
REM Jar du serveur : dans le repo (lib\) en priorite, sinon dans Downloads.
set "SERVEUR=%~dp0lib\escampeobf.jar"
if not exist "%SERVEUR%" set "SERVEUR=C:\Users\Kerboul\Downloads\escampeobf.jar"
REM Jar de notre IA (genere par build.sh, chemin relatif a ce .bat) :
set "IA=%~dp0dist\Puyaubreau_Russac.jar"
if not exist "%SERVEUR%" echo [ERREUR] Introuvable : %SERVEUR% & pause & exit /b 1
if not exist "%IA%" echo [ERREUR] Introuvable : %IA% (lancez d'abord build.sh) & pause & exit /b 1
echo Lancement du serveur...
start "Escampe - Serveur" cmd /k java -cp "%SERVEUR%" escampe.ServeurJeu 1234 1
timeout /t 2 >nul
echo Lancement de l'IA (Puyaubreau_Russac)...
start "Escampe - IA" cmd /k java -cp "%IA%" escampe.ClientJeu escampe.JoueurPuyaubreauRussac localhost 1234
timeout /t 1 >nul
echo Lancement de votre client humain...
start "Escampe - VOUS" cmd /k java -cp "%SERVEUR%" escampe.ClientJeu escampe.JoueurHumain localhost 1234
echo.
echo C'est parti ! Jouez dans la fenetre "Escampe - VOUS".
echo (Le serveur ouvre aussi une fenetre graphique du plateau.)