La bataille navale se joue en deux phases:
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.
Paramètre | Description |
---|---|
game | string, sera toujours "Battleship" Peut servir si votre url sert à plusieurs jeux |
match_id | String. répond à l'expression régulière suivante: ^[0-9]+-(1|2)$ Le premier nombre (digits avant le tiret) identifie le match. Le numéro après le tiret vous indique si vous êtes le bot 1 ou le bot 2 dans l'ordre de jeu. Ça vous servira si votre IA fait des statistiques sur les matchs. |
act | Peut prendre deux valeurs:
|
opponent | 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. |
width | Entier, compris entre 1 et 100, bornes incluses, vous indique la largeur de la map. |
height | Entier, compris entre 1 et 100, bornes incluses, Vous indique la hauteur de la map. |
ship1 | Entier, compris entre 0 et 10, bornes incluses, Vous indique le nombre de bateaux de longeur 1 case à placer. |
ship2 | Entier, compris entre 0 et 10, bornes incluses, Vous indique le nombre de bateaux de longeur 2 cases à placer. |
ship3 | Entier, compris entre 0 et 10, bornes incluses, Vous indique le nombre de bateaux de longeur 3 cases à placer. |
... | ... |
ship6 | Entier, compris entre 0 et 10, bornes incluses, Vous indique le nombre de bateaux de longeur 6 cases à placer. |
your_strikes | string représentant un array au format JSON. Ce parametre n'est envoyé que lors de la phase de tirs du jeu (act=fight). Il vous indique les tirs que vous avez déjà effectués et leur résultats. Lors du premier tour de jeu, il représente un array vide [ ] Lors du deuxième tour de jeu, il contient le tir précédent et son résultat: [{"target":"2,0","result":""}] Lors du troisième tour de jeu, les deux tirs précédents [{"target":"2,0","result":"hit"},{"target":"5,1","result":"hit"}] Chaque tir est un sous array pour lesquels:
|
his_strikes | idem |
Lors de l'initialisation d'une partie StupidIA VS StupidsIA, l'arène a envoyé au bot les parametres POST suivants:
game=Battleship&match_id=828-1&act=init&opponent=stupidIA&width=10&height=10&ship1=0&ship2=1&ship3=2&ship4=1&ship5=1&ship6=0
[game] => Battleship [match_id] => 828-1 [act] => init [opponent] => stupidIA [width] => 10 [height] => 10 [ship1] => 0 [ship2] => 1 [ship3] => 2 [ship4] => 1 [ship5] => 1 [ship6] => 0
Il doit retourner la position des navires.
Vous retournez un tableau JSON ayant autant d'enregistrements que de navires. Chaque navire est défini par les coordonnées de ses extrémités.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
0 | ||||||||||
1 | ||||||||||
2 | ||||||||||
3 | ||||||||||
4 | ||||||||||
5 | ||||||||||
6 | ||||||||||
7 | ||||||||||
8 | ||||||||||
9 |
largeur; 10, hauteur 10; 3 bateaux:
Pour placer ces 3 bateaux, vous devez retourner au format JSON le tableau suivant:
["1,0-1,3","2,4-3,4","3,6-5,6"]