blob: f6045d52e31bd3c2141f91806f63624643131c09 (
plain) (
tree)
|
|
Juge automatique pour IA pour jeu générique...
==============================================
Les joueurs sont des programmes qui lisent des infos sur le jeu sur l'entrée
standard et jouent leur coups sur la sortie standard.
Organisation des fichiers
-------------------------
judge/ le code du juge
protocol.ml encodeur et décodeur pour le protocole décrit plus bas
core.ml la partie principale
main.ml la synchro
gui.ml l'interface de visualisation
morpionrec.ml la partie spécifique à un jeu
morpionrec/ dossier pour un jeu
joueur1/ dossier pour une IA
player le binaire/code du joueur
... fichiers de données perso
(le binaire est lancé dans le dossier du joueur)
joueur2/
player
...
201411202011.log log de chaque séance
201411202011.score enregistrement des scores de chaque séance
Protocole d'entrée-sortie
-------------------------
Le juge et le joueur s'envoient des messages
terminés par un retour à la ligne.
J : Juge, P : joueur
1. Le juge et le joueur se disent bonjour:
J Hello morpion-rec
P Hello morpion-rec
Le joueur doit charger ses données *avant* de répondre, car dès qu'il a
répondu on peut lui demnander de jouer et décompter son temps.
2. Lorsque c'est au joueur de jouer:
J Your turn secondes_pour_jouer
P Play des_infos_sur_le_coup
J OK
3. Lorsque l'adversaire a joué:
J Play des_infos_sur_le_coup
À partir de ce moment commence immédiatement le décompte du temps de
réflexion du joueur.
4. Lorsque la partie se termine, un des cas suivants se présentent:
J You win
J You lose
J Tie
J Eliminated
Le joueur répond alors:
P Fair enough
Le joueur doit enregistrer toutes ses données (apprentissage, ...) avant
d'envoyer ce message : en effet, le juge envoit un SIGTERM au joueur une fois
qu'il l'a reçu.
Organisation du tournoi
-----------------------
Chaque paire ordonnée de joueurs distincts est considérée (pour chaque paire de
joueurs, il y a deux matchs, un où chaque joueur commence). Les matchs sont mis
en attente, et n matchs sont lancés en parallèle (typiquement n = #CPU/2).
Interface de visualisation du juge
----------------------------------
On a une GUI avec les vues suivantes :
- Tableau des scores (classé, évidemment)
- Liste des matchs en cours, liste de tous les matchs (en cours et finis)
- Visualisation d'un match (géré par le jeu)
Le morpion récursif
-------------------
Tout le monde connait les règles ;-)
|