Specifications bataille Navale

Fonctionnement de la bataille navale

Elle se joue en deux phases

Communications entre l'arène et votre bot

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.

Votre bot répond par un array au format JSON.

Message d'initialisation de votre partie

l'arène envoie le message suivant:
{"game-id":1609,"game":"battleship","action":"init","players":2,"player-index":0,"board":{"opponent":"stupidIA","width":"10","height":"10","ship1":"0","ship2":"1","ship3":"2","ship4":"1","ship5":"1","ship6":"0"}}

Si on décompose le tableau pour l'expliquer:

Votre bot doit retourner le nom de votre bot et le placement de vos bateaux au format JSON:

  {"name":"gnieark","boats":["4,2-4,6","3,3-3,0","2,3-2,1","7,9-5,9","6,8-6,7"]}
  

Exemple de placement de 5 bateaux tailles respectives 5, 4, 3, 3, 2 cases :

    ["3,3-3,7","2,1-2,4","0,1-0,3","7,3-7,1","8,8-7,8"]

Bien évidemment si vos bateaux se chevauchent, ou si leur nombre et leur longueur ne correspond pas à la demande de l'arène, vous perdez la partie.

L'ordre des bateaux n'a pas d'importance.
De la même manière, pour un bateau, l'ordre de ses points n'importe pas non plus.

Vu sur la grille, l'exemple précédent donnerait :

0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9

Message vous demandant de jouer (seulement un tour)

L'arène vous envoie par exemple le message suivant:

{"game":"Battleship","game-id":1615,"action":"play-turn","player-index":1,"board":{"opponent":"stupidIA","width":"10","height":"10","ship1":"0","ship2":"1","ship3":"2","ship4":"1","ship5":"1","ship6":"0","your_strikes":[{"target":"4,3","result":""},{"target":"9,8","result":""}],"his_strikes":[{"target":"2,2","result":""},{"target":"0,6","result":""},{"target":"7,0","result":""}]}}

la map

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

your_strikes et his_strikes

Chaîne de caractères 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:

Réponse de votre bot

Il doit répondre par les coordonnées de la case dans laquelle il souhaite effectuer un tir.

{"play":"1,8"}

x,y

Outils pour développer et tester votre bot

Script Botsarena en cours de développement

Faire entrer votre bot dans cette arène

Le formulaire d'inscription de votre bot est sur la page d'accueil du site.