aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2014-11-08 23:08:55 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2014-11-08 23:08:55 +0100
commit1ae5103457a1d6694e68a8b0e5225cb348ebd978 (patch)
treed419e342b2c5cadb87c5a00bc2bd31786b043952 /README.md
downloadCompetIA-1ae5103457a1d6694e68a8b0e5225cb348ebd978.tar.gz
CompetIA-1ae5103457a1d6694e68a8b0e5225cb348ebd978.zip
Initial commit: WIP on judge.
Diffstat (limited to 'README.md')
-rw-r--r--README.md94
1 files changed, 94 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ebff8f5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,94 @@
+
+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
+-------------------------
+
+juge/
+ *.ml 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/
+ joueur_1/
+ player le binaire/code du joueur
+ * fichiers de données perso
+ (le binaire est lancé dans le dossier du joueur)
+ joueur_2/
+ 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 = 4).
+
+
+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)
+
+
+