This commit is contained in:
Gnieark 2016-05-31 12:17:19 +02:00
parent 272361f91d
commit 2391fb7ebd

View File

@ -3,47 +3,44 @@
Ne vous fiez pas au GIF animé de la page d'accueil du site.<br/> Ne vous fiez pas au GIF animé de la page d'accueil du site.<br/>
Il est là pour illustrer le fonctionnement global de l'arène, mais il est faux. Il est là pour illustrer le fonctionnement global de l'arène, mais il est faux.
</p> </p>
<h2>Spécifications : Communications entre l'arène et votre bot</h2> <h2>Communications entre l'arène et votre bot</h2>
<p>Pour communiquer, l'arène (le serveur hébergeant botsarena) fait des requetes http(s) de type POST vers les bots. Le message est dans le corps de la requête au format JSON.</p> <p>Pour communiquer, l'arène (le serveur hébergeant botsarena) fait des requetes http(s) de type POST vers les bots. Le message est dans le corps de la requête au format JSON.</p>
<p>Votre bot répond par un array au format JSON</p> <p>Votre bot répond par un array au format JSON.</p>
<h2>contenu du JSON</h2>
<h3>Message d'initialisation de votre partie</h3> <h3>Message d'initialisation de votre partie</h3>
l'arène envoie le message suivant: l'arène envoie le message suivant:
<pre>{"game-id":"1126","action":"init","game":"tictactoe","players":2,"board":"","player-index":0}</pre> <pre>{"game-id":"1126","action":"init","game":"tictactoe","players":2,"board":"","player-index":0}</pre>
<p>Si on décompose le tableau pour l'expliquer:</p> <p>Si on décompose le tableau pour l'expliquer:</p>
<ul> <ul>
<li><em>game-id</em> string identifiant la partie</li> <li><em>game-id</em> string identifiant la partie.</li>
<li><em>action</em> string identifiant la phase, <em>init</em> tout de suite, sera <em>play-turn</em> dans le châpitre suivant</li> <li><em>action</em> string identifiant la phase, <em>init</em> tout de suite, sera <em>play-turn</em> dans le châpitre suivant.</li>
<li><em>game</em>String identifiant le jeu. Ici, ce sera forcément tictactoe. ça peut servir si vous donnez une seule URL pour plusieurs bots</li> <li><em>game</em> string identifiant le jeu. Ici, ce sera forcément tictactoe. ça peut servir si vous donnez une seule URL pour plusieurs bots.</li>
<li><em>players</em>Int indiquant le nombre de joueurs dans la partie, toujours 2 au morpion</li> <li><em>players</em> Int indiquant le nombre de joueurs dans la partie, toujours 2 au morpion.</li>
<li><em>board</em>Vide à cette étape, voir chapitre suivant</li> <li><em>board</em> Vide à cette étape, voir chapitre suivant.</li>
<li><em>player-index</em> int, L'ordre de votre bot dans les tours de jeu. Le premier joueur a la valeur 0, le deuxième 1.</li> <li><em>player-index</em> int, L'ordre de votre bot dans les tours de jeu. Le premier joueur a la valeur 0, le deuxième 1.</li>
</ul> </ul>
<p>Votre bot doit répondre au format JSON:</p> <p>Votre bot doit retourner le nom de votre bot format JSON:</p>
<pre> <pre>
{"name":"botName"} {"name":"botName"}
</pre> </pre>
<ul>
<li><em>name</em> le nom de votre bot (actuellment non pris en compte par cette arène).</li>
</ul>
<p>L'arène ne vérifie pas actuellement cette réponse, l'étape d'init a été insérée pour assurer la compatibilité avec <a href="https://github.com/moul/bolosseum">Bolosseum</a>. <p>L'arène ne vérifie pas actuellement cette réponse, l'étape d'init a été insérée pour assurer la compatibilité avec <a href="https://github.com/moul/bolosseum">Bolosseum</a>.
Si votre bot repond une page blanche à cette étape (action=init), ça marchera dans le cadre de botsarena.</p> Si votre bot repond une page blanche à cette étape (action=init), ça marchera dans le cadre de botsarena.</p>
<ul>
<li><em>name</em> le nom de votre bot (actuellment non pris en compte par cette arène)</li>
</ul>
<h3>Message vous demandant de jouer (seulement un tour)</h3> <h3>Message vous demandant de jouer (seulement un tour)</h3>
<p>L'arène vous envoie par exemple le message suivant:</p> <p>L'arène vous envoie par exemple le message suivant:</p>
<pre>{"game-id":"1126","action":"play-turn","game":"tictactoe","players":2,"board":{"0-0":"","0-1":"","0-2":"","1-0":"","1-1":"","1-2":"","2-0":"","2-1":"","2-2":""},"you":"X","player-index":0}</pre> <pre>{"game-id":"1126","action":"play-turn","game":"tictactoe","players":2,"board":{"0-0":"","0-1":"","0-2":"","1-0":"","1-1":"","1-2":"","2-0":"","2-1":"","2-2":""},"you":"X","player-index":0}</pre>
<ul> <ul>
<li><em>game-id</em> string identifiant la partie</li> <li><em>game-id</em> String identifiant la partie.</li>
<li><em>action</em> string identifiant la phase, <em>play-turn</em> tout de suite, qui vous indique que vous devez jouer</li> <li><em>action</em> String identifiant la phase, <em>play-turn</em> tout de suite, qui vous indique que vous devez jouer.</li>
<li><em>game</em> String identifiant le jeu. Ici, ce sera forcément tictactoe. ça peut servir si vous donnez une seulle URL pour plusieurs bots</li> <li><em>game</em> String identifiant le jeu. Ici, ce sera forcément tictactoe. ça peut servir si vous donnez une seulle URL pour plusieurs bots.</li>
<li><em>players</em> Int indiquant le nombre de joueurs dans la partie, toujours 2 au morpion</li> <li><em>players</em> Int indiquant le nombre de joueurs dans la partie, toujours 2 au morpion</li>
<li><em>board</em> La carte je donne le détail ci dessous</li> <li><em>board</em> La carte je donne le détail ci dessous</li>
<li><em>you</em> Votre caractère dans la grille</li> <li><em>you</em> String, Votre caractère dans la grille</li>
<li><em>player-index</em> int, L'ordre de votre bot dans les tours de jeu. Le premier joueur a la valeur 0, le deuxième 1.</li> <li><em>player-index</em> Int, L'ordre de votre bot dans les tours de jeu. Le premier joueur a la valeur 0, le deuxième 1.</li>
</ul> </ul>
<h4>la map</h4> <h4>la map</h4>
<p>Elle est représenté par un sous-tableau. Les index correspondent aux coordonnées x-y de la case. les valeurs peuvent &ecirc;tre:</p> <p>Elle est représentée par un sous-tableau. Les index correspondent aux coordonnées x-y de la case. x et y sont compris entre 0 et 2. Les valeurs peuvent &ecirc;tre:</p>
<ul> <ul>
<li>Vide, personne n'a joué à cette case</li> <li>Vide, personne n'a joué à cette case</li>
<li>"X" ou "O", le joueur ayant ce symbole a déjà joué cette case.</li> <li>"X" ou "O", le joueur ayant ce symbole a déjà joué cette case.</li>