The HTTP page that must generate your bot contains the position of ships.
</p>
<p>
You return a character string that is a JSON array with as many records as ships.<br/>
Each ship is defined by the coordinates of its ends.
</p>
<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>Votre bot répond par un array au format JSON.</p>
<p>Si on décompose le tableau pour l'expliquer:</p>
<ul>
<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>game</em> string identifiant le jeu. Ici, ce sera forcément battleship. ç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 à la bataille navale.</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>board</em> un tableau vous donnant les parametres:
<ul>
<li><em>opponent</em> Chaîne de caractères 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. </li>
<li><em>width</em> Entier, compris entre 1 et 100, bornes incluses, vous indique la largeur de la map.</li>
<li><em>height</em> Entier, compris entre 1 et 100, bornes incluses, vous indique la hauteur de la map.</li>
<li><em>ship1</em> Entier, compris entre 0 et 10, bornes incluses, vous indique le nombre de bateaux de longeur 1 case à placer.</li>
<li><em>ship2</em> Entier, compris entre 0 et 10, bornes incluses, vous indique le nombre de bateaux de longeur 2 cases à placer.</li>
<li>...</li>
<li><em>ship6</em> Entier, compris entre 0 et 10, bornes incluses, vous indique le nombre de bateaux de longeur 6 cases à placer.</li>
</ul>
</li>
</ul>
<p>Votre bot doit retourner le nom de votre bot et le placement de vos bateaux au format JSON:</p>
<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>game</em> String identifiant le jeu. Ici, ce sera forcément battleship. ç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 à la bataille navale.</li>
<li><em>board</em> La carte je donne le détail ci dessous</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>
</ul>
<h4>la map</h4>
<p>Elle est représentée par les éléments d'écrits à l'étape précédente et par deux sous tableaux your_strikes et his strikes</p>
<ul>
<li><em>opponent</em> Chaîne de caractères 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. </li>
<li><em>width</em> Entier, compris entre 1 et 100, bornes incluses, vous indique la largeur de la map.</li>
<li><em>height</em> Entier, compris entre 1 et 100, bornes incluses, vous indique la hauteur de la map.</li>
<li><em>ship1</em> Entier, compris entre 0 et 10, bornes incluses, vous indique le nombre de bateaux de longeur 1 case à placer.</li>
<li><em>ship2</em> Entier, compris entre 0 et 10, bornes incluses, vous indique le nombre de bateaux de longeur 2 cases à placer.</li>
<li>...</li>
<li><em>ship6</em> Entier, compris entre 0 et 10, bornes incluses, vous indique le nombre de bateaux de longeur 6 cases à placer.</li>
<li><em>your_strikes</em> tableau vous indiquant vos tirs précédents et eur résultat</li>
<li><em>his_strikes</em> Idem, mais pour l'adversaire. Si ce dernier tire selon un modèle prédisible, vous saurez comment comment placer vos bateaux lors de la prochaine partie</li>
</ul>
<h4> your_strikes et his_strikes</h4>
<p>Chaîne de caractères représentant un array au format JSON.<br/>
Ce parametre n'est envoyé que lors de la phase de tirs du jeu (act=fight).<br/>
Il vous indique les tirs que vous avez déjà effectués et leur résultats.<br/>
Lors du premier tour de jeu, il représente un array vide:
</p>
<pre>[ ]</pre>
<p>
Lors du deuxième tour de jeu, il contient le tir précédent et son résultat :
</p>
<pre>[{"target":"2,0","result":""}]</pre>
<p>
Lors du troisième tour de jeu, les deux tirs précédents :