diff --git a/aBitLessStupidIATron.php b/aBitLessStupidIATron.php deleted file mode 100644 index 74bc3ed..0000000 --- a/aBitLessStupidIATron.php +++ /dev/null @@ -1,115 +0,0 @@ -addDirection($dirObj),$busyCells, TRUE)){ - $availablesDirs[] = $dirObj; - } - } - - return $availablesDirs; -} - -function scoreDirection($busyCells,$headPOS,$dir){ - $newBusyCells = $busyCells; - $newBusyCells[] = $headPOS->addDirection($dir); - return count(get_available_dirs($newBusyCells,$headPOS->addDirection($dir))); -} - - -switch($params['action']){ - case "init": - echo '{"name":"Stupid AI"}'; - break; - case "play-turn": - - //Input JSON exemple: - /* - {"game-id":"1784", - "action":"play-turn", - "game":"tron", - "board":[ - [[490,937],[489,937],[489,938]], - [[349,806],[350,806],[350,805]] - ],"player-index":0,"players":2} - */ - - //put all non empty coords on array - $busyCells = array(); - - foreach($params['board'] as $tail){ - foreach($tail as $coord){ - $busyCells[] = new Coords($coord[0],$coord[1]); - } - } - - //get my head coords - $myCoords = new Coords($params['board'][$params['player-index']][0][0],$params['board'][$params['player-index']][0][1]); - $availablesDirs = get_available_dirs($busyCells,$myCoords); - - - //score them - $majoredAvailableDirs = array(); - foreach($availablesDirs as $dir){ - $score = scoreDirection($busyCells,$myCoords,$dir); - for($i = 0; $i < $score * 10; $i++){ - $majoredAvailableDirs[] = $dir; - } - } - - - if(count($majoredAvailableDirs) == 0){ - echo '{"play":"x+","comment":"I Loose"}'; - error_log("i ll loose"); - }else{ - shuffle($majoredAvailableDirs); - echo '{"play":"'.$majoredAvailableDirs[0].'"}'; - - //error_log(json_encode($majoredAvailableDirs)); - } - - break; - default: - break; -} \ No newline at end of file diff --git a/stupidIATron.php b/stupidIATron.php index 317dead..74bc3ed 100644 --- a/stupidIATron.php +++ b/stupidIATron.php @@ -1,17 +1,63 @@ addDirection($dirObj),$busyCells, TRUE)){ + $availablesDirs[] = $dirObj; + } + } + + return $availablesDirs; +} + +function scoreDirection($busyCells,$headPOS,$dir){ + $newBusyCells = $busyCells; + $newBusyCells[] = $headPOS->addDirection($dir); + return count(get_available_dirs($newBusyCells,$headPOS->addDirection($dir))); +} + + switch($params['action']){ case "init": echo '{"name":"Stupid AI"}'; @@ -34,39 +80,35 @@ switch($params['action']){ foreach($params['board'] as $tail){ foreach($tail as $coord){ - $busyCells[] = $coord[0].",".$coord[1]; + $busyCells[] = new Coords($coord[0],$coord[1]); } } - - + //get my head coords - $myCoords = $params['board'][$params['player-index']][0]; + $myCoords = new Coords($params['board'][$params['player-index']][0][0],$params['board'][$params['player-index']][0][1]); + $availablesDirs = get_available_dirs($busyCells,$myCoords); - $x = $myCoords[0]; - $y = $myCoords[1]; - $availablesDirs = array(); - if (!in_array(($x + 1).",".$y, $busyCells)){ - $availablesDirs[] = "x+"; - } - if (!in_array(($x -1 ).",".$y, $busyCells)){ - $availablesDirs[] = "x-"; - } - if (!in_array($x.",".($y + 1), $busyCells)){ - $availablesDirs[] = "y+"; - } - if (!in_array($x.",".($y - 1), $busyCells)){ - $availablesDirs[] = "y-"; + //score them + $majoredAvailableDirs = array(); + foreach($availablesDirs as $dir){ + $score = scoreDirection($busyCells,$myCoords,$dir); + for($i = 0; $i < $score * 10; $i++){ + $majoredAvailableDirs[] = $dir; + } } - if(count($availablesDirs) == 0){ + + if(count($majoredAvailableDirs) == 0){ echo '{"play":"x+","comment":"I Loose"}'; - //error_log("i ll loose"); + error_log("i ll loose"); }else{ - shuffle($availablesDirs); - echo '{"play":"'.$availablesDirs[0].'"}'; + shuffle($majoredAvailableDirs); + echo '{"play":"'.$majoredAvailableDirs[0].'"}'; + + //error_log(json_encode($majoredAvailableDirs)); } - //error_log(json_encode($availablesDirs)); + break; default: break;