From 78bbfbcc3bf88bb60389cbb7388dea1a2403e72e Mon Sep 17 00:00:00 2001 From: Gnieark Date: Tue, 4 Oct 2016 21:13:31 +0200 Subject: [PATCH] specs fr --- countBattles.txt | 2 +- src/arenas/tron/TronGame.php | 4 +- src/arenas/tron/doc-fr.html | 75 ++++++++++++++++++++++++++++++++++++ src/arenas/tron/style.css | 5 +++ 4 files changed, 84 insertions(+), 2 deletions(-) diff --git a/countBattles.txt b/countBattles.txt index f350689..07c5b74 100755 --- a/countBattles.txt +++ b/countBattles.txt @@ -1 +1 @@ -1677 \ No newline at end of file +1681 \ No newline at end of file diff --git a/src/arenas/tron/TronGame.php b/src/arenas/tron/TronGame.php index c002205..660cb8c 100755 --- a/src/arenas/tron/TronGame.php +++ b/src/arenas/tron/TronGame.php @@ -175,7 +175,9 @@ class TronGame for ($i = 0; $i < count($iasUrls); $i++){ if(isset($postParams[$i])){ //dont use already deads bots $data_string = json_encode($postParams[$i]); - + + error_log($data_string); + $ch[$i] = curl_init($iasUrls[$i]); curl_setopt($ch[$i], CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch[$i], CURLOPT_SSL_VERIFYHOST, false); diff --git a/src/arenas/tron/doc-fr.html b/src/arenas/tron/doc-fr.html index e69de29..f3ceb05 100755 --- a/src/arenas/tron/doc-fr.html +++ b/src/arenas/tron/doc-fr.html @@ -0,0 +1,75 @@ +

Fonctionnement des combats de Tron

+

Règles du jeu (hors specs techniques)

+

Chaque bot démarre depuis une case choisie au hazard par l'arène.

+

A chaque tour, il est demandé aux bots de grandir d'une case. Il peut choisir la direction. Sa queue s'allonge.

+

Si un bot percute une case déjà prise par sa queue ou celle d'un autre, il perd.

+

Ce n'est pas du tour par tour, les bots jouent simultanément, ils peuvent donc perdre en choisissant la même case de destination qu'un autre serpent

+

Exemple:

+ + + + + + + + + + + +
9
8
7
6
5
4oOoO
3
2
1
0123456789
+

Si dans le même tour le serpent vert et le serpent rouge décident d'aller respectivement vers la gauche et vers la droite, ils vont se télescopper et perdre tous les deux.

+ + + + + + + + + + + +
9
8
7
6
5
4): :(
3
2
1
0123456789
+

Lorsqu'un serpent meurt, (lorsqu'un bot perd) Sa queue est effacée et les cases prises par cette dernière devienent libres pour les serpents encore en vie.

+

Le jeu prend fin lorsqu'il reste moins de deux serpents.

+

La grille

+ + +

Communications entre l'arène et les bots

+

L'arène fait emet des requetes http(s) à destination des bots.

+ + +

Initialisation de la partie

+

L'arène (ce site) envoie le message (exemple) suivant à votre bot:

+
+{"game-id":"1679","action":"init","game":"tron","board":"","players":4,"player-index":2}
+
+ + +

Votre bot doit répondre par un tableau au format json, comme ceci:

+
+{"name":"botName"}
+
+

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 Bolosseum. + Si votre bot repond une page blanche à cette étape (action=init), ça marchera dans le cadre de botsarena.

+ +

Tours de jeu

+

Exemple de message envoyé par l'arène au premier tour de jeu:

+ +

Exemple de message envoyé par l'arène après quelques tours de jeu:

+
+{"game-id":"1680","action":"play-turn","game":"tron","board":[[[687,110],[687,111],[686,111],[686,110],[686,109],[686,108],[686,107],[685,107],[685,108],[685,109],[684,109],[684,110],[684,111],[684,112],[684,113],[683,113],[682,113],[681,113],[681,114],[681,115],[681,116],[680,116],[680,117],[679,117],[679,116],[679,115],[679,114],[679,113],[679,112],[679,111],[679,110],[679,109],[678,109],[678,108],[677,108],[676,108],[676,107],[676,106],[676,105],[676,104],[676,103],[675,103],[674,103],[674,102],[673,102],[672,102],[672,101],[671,101],[670,101],[669,101],[669,102],[669,103],[669,104],[669,105],[669,106],[669,107],[668,107],[668,108],[668,109],[668,110],[668,111],[668,112],[667,112],[667,111],[667,110],[666,110],[666,109],[666,108],[665,108],[664,108],[664,107],[664,106],[663,106],[663,107],[663,108],[662,108],[661,108],[660,108],[660,107],[659,107],[659,106],[658,106],[657,106],[657,105],[657,104],[656,104],[656,103],[655,103],[655,102],[655,101],[654,101],[654,102],[654,103],[654,104],[653,104],[653,103],[653,102],[653,101],[653,100],[652,100],[651,100],[651,101],[651,102],[651,103],[651,104],[650,104],[650,105],[650,106],[649,106],[649,105],[648,105]],[[100,225],[100,226],[100,227],[100,228],[100,229],[100,230],[100,231],[99,231],[98,231],[98,232],[97,232],[96,232],[96,231],[96,230],[96,229],[96,228],[96,227],[96,226],[96,225],[96,224],[96,223],[95,223],[95,222],[94,222],[94,221],[94,220],[93,220],[92,220],[92,219],[92,218],[92,217],[92,216],[92,215],[91,215],[91,214],[90,214],[89,214],[89,213],[89,212],[88,212],[88,213],[88,214],[87,214],[87,213],[86,213],[86,214],[86,215],[85,215],[85,214],[84,214],[84,215],[83,215],[83,216],[83,217],[82,217],[82,216],[81,216],[81,215],[80,215],[80,216],[79,216],[79,215],[79,214],[78,214],[77,214],[77,213],[77,212],[76,212],[75,212],[75,211],[75,210],[75,209],[74,209],[74,210],[74,211],[73,211],[73,210],[72,210],[72,209],[71,209],[71,210],[70,210],[70,209],[69,209],[68,209],[68,210],[68,211],[67,211],[67,210],[67,209],[67,208],[66,208],[66,207],[66,206],[66,205],[66,204],[66,203],[65,203],[65,204],[64,204],[64,203],[63,203],[63,204],[63,205],[63,206],[62,206],[61,206],[61,207],[60,207],[60,208],[59,208]]],"player-index":0,"players":2}
+
\ No newline at end of file diff --git a/src/arenas/tron/style.css b/src/arenas/tron/style.css index eac3e3a..c848e32 100755 --- a/src/arenas/tron/style.css +++ b/src/arenas/tron/style.css @@ -1,3 +1,8 @@ +.tabledoc{border-collapse:collapse;} +.tabledoc tr td,.tabledoc tr th{border: 1px solid green; padding-left: 5px;width: 20px; height: 20px;} +.green{background-color: green;} +.red{background-color: red;} +.brown{background-color: grey;} #configurePlayers{width: 100%;} #configurePlayers fieldset{display: block; width: 100px; float:left;} #logs{display:block;padding-left:10px; height: 200px; overflow-y: scroll;}