pull/96/head
Gnieark 8 years ago
parent 7558b7d38d
commit a6eae7ce1c

@ -1 +1 @@
1496 1507

@ -40,12 +40,21 @@ class TronGame
$a = $arr[0]; $a = $arr[0];
array_shift($arr); array_shift($arr);
foreach($arr as $bot){ foreach($arr as $bot){
save_battle('tron',$a,$bot,0); save_battle('tron',$a,$bot,0,'id');
} }
$this->save_draw_bots($arr); $this->save_draw_bots($arr);
} }
} }
private function save_losers_winers($arrLoosers,$arrWiners){
foreach($arrWiners as $winner){
foreach($arrLoosers as $loser){
save_battle('tron',$winer,$loser,1,'id');
}
}
}
private function get_multi_IAS_Responses($iasUrls, $postParams){ private function get_multi_IAS_Responses($iasUrls, $postParams){
//same as the get_IAS_Responses function //same as the get_IAS_Responses function
// but more than one bot requested parallely // but more than one bot requested parallely
@ -149,20 +158,25 @@ class TronGame
} }
$responses = $this->get_multi_IAS_Responses($urls,$paramsToSend); $responses = $this->get_multi_IAS_Responses($urls,$paramsToSend);
//print_r($responses);
$targetsList = array(); $targetsList = array();
$busyCells = $this->getBusyCells(); $busyCells = $this->getBusyCells();
$busyCellsStr = array();
foreach ($busyCells as $bs){
$busyCellsStr[] = $bs[0].",".$bs[1]; //as string for use in in_array
}
for ($botCount = 0; $botCount < $nbeBots; $botCount++){ for ($botCount = 0; $botCount < $nbeBots; $botCount++){
if ($this->bots[$botCount]->getStatus()){ if ($this->bots[$botCount]->getStatus()){
//tester si sa réponse n'est pas sur une case déjà occupée. //tester si sa réponse n'est pas sur une case déjà occupée.
$target = $this->bot[$botCount]->grow($response[$botCount]['responseArr']['play']); $target = $this->bots[$botCount]->grow($responses[$botCount]['responseArr']['play']);
$x = $target[0]; $x = $target[0];
$y = $target[1]; $y = $target[1];
$hashTargetsList[$botCount] = $x * 1000 + $y; //wil be easyest to compare than if it was arrays $hashTargetsList[$botCount] = $x * 1000 + $y; //wil be easyest to compare than if it was arrays
if(($target === false) if(($target === false)
OR (in_array($target,$busyCells)) OR (in_array($target,$busyCellsStr))
OR ($x < 0) OR ($x > 999) OR ($y < 0) OR ($y > 999) OR ($x < 0) OR ($x > 999) OR ($y < 0) OR ($y > 999)
){ ){
$this->bots[$botCount]->loose();
//he loses //he loses
$loosers[] = $botCount; $loosers[] = $botCount;
} }
@ -177,6 +191,7 @@ class TronGame
&& ($botCount <> $botCount2) && ($botCount <> $botCount2)
&& ($hashTargetsList[$botCount] == $hashTargetsList[$botCount2]) && ($hashTargetsList[$botCount] == $hashTargetsList[$botCount2])
){ ){
$this->bots[$botCount]->loose();
//they loose //they loose
$loosers[] = $botCount; $loosers[] = $botCount;
$loosers[] = $botCount2; $loosers[] = $botCount2;
@ -185,10 +200,21 @@ class TronGame
} }
} }
//save_draw_bots
if(count($loosers > 0)){
//save_draw_bots
save_draw_bots($loosers);
$winners = array();
for ($botCount = 0; $botCount < $nbeBots; $botCount++){
if ($this->bots[$botCount]->getStatus()){
$winners[] = $this->bots[$botCount]->getId();
}
}
}
print_r($responses); //sauver les relations winers loosers
} }
@ -224,7 +250,7 @@ class TronGame
private function getBusyCells(){ private function getBusyCells(){
$arr=array(); $arr=array();
foreach($this->bots as $bot){ foreach($this->bots as $bot){
$arr = array_merge($arr,$bot->getTail); $arr = array_merge($arr,$bot->getTail());
} }
return $arr; return $arr;
} }

@ -1,6 +1,7 @@
<?php <?php
class TronPlayer{ class TronPlayer{
private $url; private $url;
private $id;
private $name; private $name;
private $tail = array(); private $tail = array();
private $direction; private $direction;
@ -17,6 +18,9 @@ class TronPlayer{
public function getName(){ public function getName(){
return $this->name; return $this->name;
} }
public function getId(){
return $this->id;
}
private function set_direction($newDir){ private function set_direction($newDir){
//can't be the opposite of the previous direction //can't be the opposite of the previous direction
if( if(
@ -76,6 +80,7 @@ class TronPlayer{
"SELECT name,url FROM bots WHERE game='tron' AND id='".mysqli_real_escape_string($lnBdd, $id)."';" "SELECT name,url FROM bots WHERE game='tron' AND id='".mysqli_real_escape_string($lnBdd, $id)."';"
); );
if(($r=mysqli_fetch_row($rs)) && in_array($initialDirection,array('x-','x+','y-','y+'))){ if(($r=mysqli_fetch_row($rs)) && in_array($initialDirection,array('x-','x+','y-','y+'))){
$this->id = $id;
$this->name = $r[0]; $this->name = $r[0];
$this->url = $r[1]; $this->url = $r[1];
$this->tail = array(array($initialX,$initialY)); $this->tail = array(array($initialX,$initialY));

@ -229,18 +229,24 @@ function ELO_get_new_ranks($elo1,$elo2,$score){
$elo2 + ELO_get_k($elo2) * (1 - $score - (1/ (1 + pow(10,(($elo1 - $elo2) / 400))))) $elo2 + ELO_get_k($elo2) * (1 - $score - (1/ (1 + pow(10,(($elo1 - $elo2) / 400)))))
); );
} }
function save_battle($game,$bot1,$bot2,$resultat){
function save_battle($game,$bot1,$bot2,$resultat,$nameOrIds = 'name'){
//$bots1 and $bots2 are bots'names
//resultat: 0 match nul, 1 bot1 gagne 2 bot 2 gagne //resultat: 0 match nul, 1 bot1 gagne 2 bot 2 gagne
global $lnMysql; global $lnMysql;
$game=substr($game,0,8); //limit 8 char for limitting mysql index size $game=substr($game,0,8); //limit 8 char for limitting mysql index size
//chercher les id de bot 1 et bot2 if($nameOrIds == "name"){
$rs=mysqli_query($lnMysql,"SELECT name,id,ELO FROM bots //chercher les id de bot 1 et bot2
WHERE name='".mysqli_real_escape_string($lnMysql,$bot1)."' $rs=mysqli_query($lnMysql,"SELECT name,id,ELO FROM bots
OR name='".mysqli_real_escape_string($lnMysql,$bot2)."'"); WHERE name='".mysqli_real_escape_string($lnMysql,$bot1)."'
OR name='".mysqli_real_escape_string($lnMysql,$bot2)."'");
}else{
$rs = mysqli_query($lnMysql, "SELECT name,id,ELO FROM bots
WHERE id='".mysqli_real_escape_string($lnMysql,$bot1)."'
OR id='".mysqli_real_escape_string($lnMysql,$bot2)."'");
}
while($r=mysqli_fetch_row($rs)){ while($r=mysqli_fetch_row($rs)){
$bots[$r[0]]=$r[1]; $bots[$r[0]]=$r[1];
$actualELO[$r[0]]=$r[2]; $actualELO[$r[0]]=$r[2];

Loading…
Cancel
Save