<?php

require_once(__DIR__."/functions.php");
switch ($_POST['act']){

  case "fight":
    $bots=get_Bots_Array('tictactoe');
    //clean $_POST vars
    $postParams=get_Post_Params(count($bots));
    if(!$postParams){
      error(400,"wrong parameters send");
      die;
    }else{
      $bot1=$postParams['bot1'];
      $bot2=$postParams['bot2'];
    }	      
    //init map
    $map=array(
      '0-0' => '','0-1' => '','0-2' => '',
      '1-0' => '','1-1' => '','1-2' => '',
      '2-0' => '','2-1' => '','2-2' => '');
  
    $end=false;
    $playerPlayingNow=1;
    while($end==false){
      switch($playerPlayingNow){
	  case  1:
	      $playerURL=$bots[$bot1]['url'];
	      $playerCHAR='X';
	      $playerName=$bots[$bot1]['name'];
	      break;
	  case 2:
	      $playerURL=$bots[$bot2]['url'];
	      $playerCHAR='O';
	      $playerName=$bots[$bot2]['name'];
	      break;
	      
	  default:
	      error(500,"oups");
	      die;
      }
      $playerResponse=get_IA_Response($playerCHAR,$playerURL,$map);
      //tester la validité de la réponse
      if((isset($map[$playerResponse])) && ($map[$playerResponse]=="")){
	    //reponse conforme
	    echo  "<p>".$playerName." joue en ".$playerResponse." la nouvelle grille est <br/>";       
	    $map[$playerResponse]=$playerCHAR;
	    echo "<table>";
	    for($j=0;$j<3;$j++){
		echo "<tr>";
		for($i=0;$i<3;$i++){
		    echo '<td class="cellj'.$j.' celli'.$i.'">'.$map[$j.'-'.$i].'</td>';
		}
		echo "</tr>";
	    }
	    echo "</table>";
	    //tester si trois caracteres allignés
	    if(
		    (($map['0-0']==$map['0-1'])&&($map['0-1']==$map['0-2'])&&($map['0-2']!==""))
		OR  (($map['1-0']==$map['1-1'])&&($map['1-1']==$map['1-2'])&&($map['1-2']!==""))
		OR  (($map['2-0']==$map['2-1'])&&($map['2-1']==$map['2-2'])&&($map['2-2']!==""))
		OR  (($map['0-0']==$map['1-0'])&&($map['1-0']==$map['2-0'])&&($map['2-0']!==""))
		OR  (($map['0-1']==$map['1-1'])&&($map['1-1']==$map['2-1'])&&($map['2-1']!==""))
		OR  (($map['0-2']==$map['1-2'])&&($map['1-2']==$map['2-2'])&&($map['2-2']!==""))
		OR  (($map['0-0']==$map['1-1'])&&($map['1-1']==$map['2-2'])&&($map['2-2']!==""))
		OR  (($map['0-2']==$map['1-1'])&&($map['1-1']==$map['2-0'])&&($map['2-0']!==""))
	    ){
		echo "<p>".$playerName." ".$playerCHAR." a gagné.</p>";
		save_battle('tictactoe',$bots[$bot1]['name'],$bots[$bot2]['name'],$playerPlayingNow);
		$end=true;
		break;
	    }
	    //tester si toutes les cases ne seraient pas prises
	    $full=true;	      
	    foreach($map as $char){
		if($char==""){
		    $full=false;
		    break;
		}
	    }
	    if($full){
		echo "<p>Match nul</p>";
		save_battle('tictactoe',$bots[$bot1]['name'],$bots[$bot2]['name'],0);
		$end=true;
		break;
	    }
	    
	    //on change de joueur
	    if($playerPlayingNow==1){
		$playerPlayingNow=2;
	    }else{
		$playerPlayingNow=1;
	    }
      }else{
	    echo "<p>".$playerName." a fait une réponse non conforme. Il perd</p>";
	    break;
      
      }
  }
    
      die;
      break;
  default:
      break;
}