botsArena/src/arenas/Battleship/doc-fr.html

75 lines
7.6 KiB
HTML
Raw Normal View History

2015-12-12 13:29:37 +01:00
<p>La bataille navale se joue en trois phases:</p>
<ul><li>Placement des bateaux sur les maps</li>
<li>Echange de tirs</li>
<li>Fin de partie</li>
</ul>
<p>A chaque tour de jeu l'arène fait des requetes http(s) contenant des paramètres de type POST, vers vos bots. Ces derniers doivent répondre selon les spécifications ci dessous.</p>
<h2>Paramètres communs à toutes les phases de jeu</h2>
<h3>"game"</h3>
<p>string, sera toujours "Battleship" Peut servir si votre url sert à plusieurs jeux</p>
<h3>"match_id"</h3>
<p>String. répond à l'expression réguilière suivante: ^[0-9]+-(1|2)$</p>
2015-12-12 14:02:05 +01:00
<p>Le premier nombre (digits avant le tiret) identifie le match. L'arène ne vous rappelera pas à chaque tour les cases que vous avez déjà ciblé. A vous de les sauvegarder en attendant le tour suivant. D'autant que votre bot peut être amené à disputer plusieurs matchs simultanément (avec des match_id différents). Le numéro après le tiret vous indique si vous êtes le bot 1 ou le bot 2 dans l'ordre de jeu. Ca vous servira notemment à gérer les cas où votre bot joue les deux joueurs.</p>
2015-12-12 13:29:37 +01:00
<h3>"act"</h3>
<p> Peut prendre trois valeurs:</p>
2015-12-10 22:40:08 +01:00
<ul>
2015-12-12 13:55:05 +01:00
<li>"init" On démarre la partie, vous devez placer vos bateaux</li>
2015-12-12 13:29:37 +01:00
<li>"play" Vous prenez subissez un tir, et envoyez aussi un tir</li>
<li>"end" La partie est finie</li>
</ul>
<h2>Initialisation de la partie</h2>
2015-12-12 13:50:34 +01:00
<h3>Infos reçues par votre bot</h3>
2015-12-12 13:54:03 +01:00
<p>Votre bot recevra les paramètres communs à toutes les phases de jeu (avec act => init) et les suivants:</p>
2015-12-12 13:50:34 +01:00
<h4>"opponent"</h4>
2015-12-12 14:45:21 +01:00
<p>String identifiant votre adversaire. Ainsi, vous pouvez pousser le délire jusqu'à faire un algorythme qui s'adapte en fonction de l'adversaire et de l'historique des combats avec ce dernier.</p>
2015-12-12 13:29:37 +01:00
2015-12-12 13:50:34 +01:00
<h4>"width"</h4>
2015-12-12 14:45:21 +01:00
<p>integer, compris entre 1 et 100, bornes incluses, vous indique la largeur de la map.</p>
2015-12-12 13:50:34 +01:00
<h4>"height"</h4>
2015-12-12 14:45:21 +01:00
<p>integer, compris entre 1 et 100, bornes incluses, Vous indique la hauteur de la map.</p>
2015-12-12 14:44:26 +01:00
<h4>"ship1"</h4>
2015-12-12 14:45:21 +01:00
<p>integer, compris entre 0 et 10, bornes incluses, Vous indique le nombre de bateaux de longeur 1 case à placer.</p>
2015-12-12 14:44:26 +01:00
<h4>"ship2"</h4>
2015-12-12 14:45:21 +01:00
<p>integer, compris entre 0 et 10, bornes incluses, Vous indique le nombre de bateaux de longeur 2 cases à placer.</p>
2015-12-12 14:44:26 +01:00
<h4>"ship3"</h4>
2015-12-12 14:45:21 +01:00
<p>integer, compris entre 0 et 10, bornes incluses, Vous indique le nombre de bateaux de longeur 3 cases à placer.</p>
2015-12-12 14:44:26 +01:00
<h4>...</h4>
<p>...</p>
<h4>"ship6"</h4>
2015-12-12 19:10:15 +01:00
<p>integer, compris entre 0 et 10, bornes incluses, Vous indique le nombre de bateaux de longeur 6 cases à placer.</p>
<h3>Ce que doit retourner votre bot</h3>
2015-12-16 10:22:07 +01:00
<p>Il doit retourner la position des navires.</p>
<p>Vous retournez un tableau JSON ayant autant d'enregistrement que de navires.
Chaque navire est défini par les coordonnées de ses extrémités.</p>
2015-12-16 10:32:58 +01:00
<ul>
<li>La grille commence au point 0,0.</li>
2015-12-16 10:33:53 +01:00
<li>Les entiers; ordonnée et abscisses définissant un point sont séparés d'une virgule &quot;,&quot;.</li>
<li>Les deux points définissant les extrémités d'un navire sont séparés par un tiret &quot;-&quot;.</li>
2015-12-16 10:32:58 +01:00
</ul>
2015-12-16 10:33:53 +01:00
<h4>Exemple:</h4>
2015-12-16 10:13:00 +01:00
<table class="battleshipGrid nofloat" id="tbl1">
<tr><td></td><td>0</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr>
2015-12-16 10:14:47 +01:00
<tr><td>0</td><td class="empty" id="bot1-0-0"></td><td class="shipOn" id="bot1-0-1"></td><td class="empty" id="bot1-0-2"></td><td class="empty" id="bot1-0-3"></td><td class="empty" id="bot1-0-4"></td><td class="empty" id="bot1-0-5"></td><td class="empty" id="bot1-0-6"></td><td class="empty" id="bot1-0-7"></td><td class="empty" id="bot1-0-8"></td><td class="empty" id="bot1-0-9"></td></tr>
<tr><td>1</td><td class="empty" id="bot1-1-0"></td><td class="shipOn" id="bot1-1-1"></td><td class="empty" id="bot1-1-2"></td><td class="empty" id="bot1-1-3"></td><td class="empty" id="bot1-1-4"></td><td class="empty" id="bot1-1-5"></td><td class="empty" id="bot1-1-6"></td><td class="empty" id="bot1-1-7"></td><td class="empty" id="bot1-1-8"></td><td class="empty" id="bot1-1-9"></td></tr>
<tr><td>2</td><td class="empty" id="bot1-2-0"></td><td class="shipOn" id="bot1-2-1"></td><td class="empty" id="bot1-2-2"></td><td class="empty" id="bot1-2-3"></td><td class="empty" id="bot1-2-4"></td><td class="empty" id="bot1-2-5"></td><td class="empty" id="bot1-2-6"></td><td class="empty" id="bot1-2-7"></td><td class="empty" id="bot1-2-8"></td><td class="empty" id="bot1-2-9"></td></tr>
<tr><td>3</td><td class="empty" id="bot1-3-0"></td><td class="shipOn" id="bot1-3-1"></td><td class="empty" id="bot1-3-2"></td><td class="empty" id="bot1-3-3"></td><td class="empty" id="bot1-3-4"></td><td class="empty" id="bot1-3-5"></td><td class="empty" id="bot1-3-6"></td><td class="empty" id="bot1-3-7"></td><td class="empty" id="bot1-3-8"></td><td class="empty" id="bot1-3-9"></td></tr>
<tr><td>4</td><td class="empty" id="bot1-4-0"></td><td class="empty" id="bot1-4-1"></td><td class="shipOn" id="bot1-4-2"></td><td class="shipOn" id="bot1-4-3"></td><td class="empty" id="bot1-4-4"></td><td class="empty" id="bot1-4-5"></td><td class="empty" id="bot1-4-6"></td><td class="empty" id="bot1-4-7"></td><td class="empty" id="bot1-4-8"></td><td class="empty" id="bot1-4-9"></td></tr>
<tr><td>5</td><td class="empty" id="bot1-5-0"></td><td class="empty" id="bot1-5-1"></td><td class="empty" id="bot1-5-2"></td><td class="empty" id="bot1-5-3"></td><td class="empty" id="bot1-5-4"></td><td class="empty" id="bot1-5-5"></td><td class="empty" id="bot1-5-6"></td><td class="empty" id="bot1-5-7"></td><td class="empty" id="bot1-5-8"></td><td class="empty" id="bot1-5-9"></td></tr>
2015-12-16 10:14:47 +01:00
<tr><td>6</td><td class="empty" id="bot1-6-0"></td><td class="empty" id="bot1-6-1"></td><td class="empty" id="bot1-6-2"></td><td class="shipOn" id="bot1-6-3"></td><td class="shipOn" id="bot1-6-4"></td><td class="shipOn" id="bot1-6-5"></td><td class="empty" id="bot1-6-6"></td><td class="empty" id="bot1-6-7"></td><td class="empty" id="bot1-6-8"></td><td class="empty" id="bot1-6-9"></td></tr>
<tr><td>7</td><td class="empty" id="bot1-7-0"></td><td class="empty" id="bot1-7-1"></td><td class="empty" id="bot1-7-2"></td><td class="empty" id="bot1-7-3"></td><td class="empty" id="bot1-7-4"></td><td class="empty" id="bot1-7-5"></td><td class="empty" id="bot1-7-6"></td><td class="empty" id="bot1-7-7"></td><td class="empty" id="bot1-7-8"></td><td class="empty" id="bot1-7-9"></td></tr>
<tr><td>8</td><td class="empty" id="bot1-8-0"></td><td class="empty" id="bot1-8-1"></td><td class="empty" id="bot1-8-2"></td><td class="empty" id="bot1-8-3"></td><td class="empty" id="bot1-8-4"></td><td class="empty" id="bot1-8-5"></td><td class="empty" id="bot1-8-6"></td><td class="empty" id="bot1-8-7"></td><td class="empty" id="bot1-8-8"></td><td class="empty" id="bot1-8-9"></td></tr>
<tr><td>9</td><td class="empty" id="bot1-9-0"></td><td class="empty" id="bot1-9-1"></td><td class="empty" id="bot1-9-2"></td><td class="empty" id="bot1-9-3"></td><td class="empty" id="bot1-9-4"></td><td class="empty" id="bot1-9-5"></td><td class="empty" id="bot1-9-6"></td><td class="empty" id="bot1-9-7"></td><td class="empty" id="bot1-9-8"></td><td class="empty" id="bot1-9-9"></td></tr>
</table>
2015-12-16 10:22:07 +01:00
<p>largeur; 10, hauteur 10; 3 bateaux:</p>
<ul>
<li>Bateau de 4 cases ayant pour extrémités 1,0 et 1,3. sera noté &quot;1,0-1,3&quot; ou &quot;1,3-1,0&quot;</li>
<li>Bateau de 2 cases ayant pour extrémités 2,4 et 3,4. sera noté &quot;2,4-3,4&quot; ou &quot;3,4-2,4&quot;</li>
<li>Bateau de 3 cases ayant pour extrémités 3,6 et 5,6. sera noté &quot;3,6-5,6&quot; ou &quot;5,6-3,6&quot;</li>
</ul>
2015-12-16 10:32:58 +01:00
<p>Pour placer ces 3 bateaux, vous devez retourner au format JSON le tableau suivant:</p>
<pre>
&#91;&quot;1,0-1,3&quot;,&quot;2,4-3,4&quot;,&quot;3,6-5,6&quot;&#93;
</pre>