diff --git a/countBattles.txt b/countBattles.txt index 07c5b74..870e31e 100755 --- a/countBattles.txt +++ b/countBattles.txt @@ -1 +1 @@ -1681 \ No newline at end of file +1697 \ No newline at end of file diff --git a/src/arenas/tron/TronPlayer.php b/src/arenas/tron/TronPlayer.php index e1ce1de..de123e1 100755 --- a/src/arenas/tron/TronPlayer.php +++ b/src/arenas/tron/TronPlayer.php @@ -20,7 +20,7 @@ class TronPlayer{ public function loose(){ $this->isAlive = false; $this->trail->emptyTrail(); - error_log($this->name." a perdu"); + //error_log($this->name." a perdu"); return false; } public function make($botId, Coords $initialsCoords,$name,$url){ diff --git a/src/arenas/tron/act.php b/src/arenas/tron/act.php index 7fffca6..374ca48 100755 --- a/src/arenas/tron/act.php +++ b/src/arenas/tron/act.php @@ -3,7 +3,7 @@ # # This file is part of botsArena. # -# Copyright (C) Gnieark et contributeurs +# Copyright (C) Gnieark https://blog-du-grouik.tinad.fr et contributeurs # Licensed under the GPL version 3.0 license. # See LICENSE file or # http://www.gnu.org/licenses/gpl-3.0-standalone.html diff --git a/src/arenas/tron/doc-fr.html b/src/arenas/tron/doc-fr.html index f3ceb05..2231cfb 100755 --- a/src/arenas/tron/doc-fr.html +++ b/src/arenas/tron/doc-fr.html @@ -72,4 +72,73 @@
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 + +
Les champs suivants sont les mêmes qu'au paragraphe précédent:
+Elle est repésentée dans le champs "board" du JSON envoyé par l'arène. Elle décrit les cases prises par chaque joueur.
+Elle est composée de plusieurs sous-arrays/sous-objets (en fonction de votre language de programmation). Elle se décompose en sous tableaux de la forme suivante:
+
La représentation JSON est la suivante:
+ +
+[
+ [
+ [x1,y1],[x2,y2],[x3,y3]
+ ],
+ [
+ (...)
+ ]
+
L'ordre des "queues" des serpents dans ce tableau correspond à l'ordre des joueurs. Donc votre serpent est representée par la queue correspondant à player-index (le décompte de player-index commence par 0).
+L'ordre des couples de coordonnées de chaque bot, est dans le sens queue vers la tête. Les bots grandissent à chaque tour en déplaçant leur tête.
diff --git a/src/arenas/tron/js.js b/src/arenas/tron/js.js index 9cde497..826b72c 100755 --- a/src/arenas/tron/js.js +++ b/src/arenas/tron/js.js @@ -84,16 +84,30 @@ function applyInitMessage(req,xd_check){ function drawMap(map){ - console.log(map); + //console.log(map); var botsColor = ['cyan','darkmagenta','darkred','darkslategrey','deeppink','dodgerblue','goldenrod','grey','indigo','lightgreen','mediumslateblue','midnightblue']; - for (var botId in map){ - //draw the point - var rect=createElemNS('rect',{'x':map[botId]['x'],'y':map[botId]['y'],'width':'2','height':'2','style':'fill:' + botsColor[botId] + ';'}); - document.getElementById('map').appendChild(rect); + for (var botId in map){ + if(typeof(map[botId]['x']) != 'undefined'){ //don't draw deads bots + //draw the point + var rect=createElemNS('rect',{'x':map[botId]['x'],'y':map[botId]['y'],'width':'2','height':'2','style':'fill:' + botsColor[botId] + ';'}); + document.getElementById('map').appendChild(rect); + } } } - +function delTrail(order){ + var botsColor = ['cyan','darkmagenta','darkred','darkslategrey','deeppink','dodgerblue','goldenrod','grey','indigo','lightgreen','mediumslateblue','midnightblue']; + //on supprime tous les elements ayant la couleur correspndante. + + var container = document.getElementById('map'); + + var listNode = container.children; + for (var i= 0; i < listNode.length; i++){ + if( listNode[i].style.fill == botsColor[order] ){ + container.removeChild(listNode[i]); + } + } +} function play(gameId,xd_check){ var req = new XMLHttpRequest(); @@ -101,7 +115,22 @@ function play(gameId,xd_check){ if(req.readyState == 4){ if(req.status == 200) { //addLog(req.responseText); - var reponse = JSON.parse(req.responseText); + var reponse = JSON.parse(req.responseText); + + //to do Effacer les bots perdants + for(var i=0; i < reponse['lap']['loosers'].length; i++){ + //alert (req.responseText); + //return; + delTrail(reponse['lap']['loosers'][i]['order']); + + //find the bot name + for (var j = 0; j < botsAvailable.length; j ++){ + if(botsAvailable[j]['id'] == reponse['lap']['loosers'][i]['order']){ + var botName = botsAvailable[j]['name']; + } + } + addLog("Bot " + reponse['lap']['loosers'][i]['order'] + "id " + reponse['lap']['loosers'][i]['id'] + " Name: " + botName + " a perdu."); + } drawMap(reponse['lap']['last_points']); if(reponse['continue'] == '1'){ diff --git a/src/arenas/tron/style.css b/src/arenas/tron/style.css index c848e32..b307116 100755 --- a/src/arenas/tron/style.css +++ b/src/arenas/tron/style.css @@ -6,4 +6,5 @@ #configurePlayers{width: 100%;} #configurePlayers fieldset{display: block; width: 100px; float:left;} #logs{display:block;padding-left:10px; height: 200px; overflow-y: scroll;} -#logs p em {color: grey; font-size: 70%; test-transform:italic;} \ No newline at end of file +#logs p em {color: grey; font-size: 70%; test-transform:italic;} +code{font-family: monospace;} \ No newline at end of file