From a48c31e3f7910186ce23a55f2a49b236507ff8a2 Mon Sep 17 00:00:00 2001 From: Gnieark Date: Thu, 12 Nov 2015 15:34:11 +0100 Subject: [PATCH] Modification du script arbitre MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suppression des champs libres dans le formulaires. l'ajour d'une IA dans la liste déroulante se fait en éditant un fichier sur le dépot. --- morpionsFights/Master/_functions.php | 32 +++ morpionsFights/Master/index.php | 331 +++++++++++++++++---------- morpionsFights/Master/listOfBots.txt | 3 + 3 files changed, 239 insertions(+), 127 deletions(-) create mode 100644 morpionsFights/Master/_functions.php create mode 100644 morpionsFights/Master/listOfBots.txt diff --git a/morpionsFights/Master/_functions.php b/morpionsFights/Master/_functions.php new file mode 100644 index 0000000..e47d4fd --- /dev/null +++ b/morpionsFights/Master/_functions.php @@ -0,0 +1,32 @@ + $name, "url" =>$url); + } + } + return $bots; +} +function getIAResponse($youChar,$iaBaseUrl,$grille){ + /*transforme la grille en parametres http GET + * et fait la requete vers $iaBaseUrl + * Retourne la réponse de l'IA + */ + $paramsGrille=""; + foreach($grille as $key => $case){ + $paramsGrille.="&".$key."=".$case; + } + $url=$iaBaseUrl."?you=".$youChar.$paramsGrille; + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + $output = curl_exec($ch); + curl_close($ch); + return htmlentities($output); +} \ No newline at end of file diff --git a/morpionsFights/Master/index.php b/morpionsFights/Master/index.php index 490c626..ae8542f 100644 --- a/morpionsFights/Master/index.php +++ b/morpionsFights/Master/index.php @@ -1,149 +1,226 @@ - -Arbitre Morpion - - - -

Arène à morpions

-
-
-

- /> - /> -

-

- /> - /> +require_once("_functions.php"); +$bots=getBotsArray(); -

-

-

-
-window.location = "http://rickrolled.fr/";'; die;
+	}
+	if(($_POST[$botKey] < 0) OR ($_POST[$botKey] > count($bots))){
+	  echo "une erreur est survenue"; die;
+	}
+      }
+      $bot1=$_POST['bot1'];
+      $bot2=$_POST['bot2'];
+         
+               
+      //initialiser la grille
+      $grille=array(
         '0-0' => '','0-1' => '','0-2' => '',
         '1-0' => '','1-1' => '','1-2' => '',
         '2-0' => '','2-1' => '','2-2' => '');
     
-    $end=false;
-    $playerEnCours=1;
-    while($end==false){
+      $end=false;
+      $playerEnCours=1;
+      while($end==false){
         switch($playerEnCours){
             case  1:
-                $playerURL=$_POST['ia1URL'];
-                $playerCHAR=$_POST['youIA1'];
+                $playerURL=$bots[$bot1]['url'];
+                $playerCHAR='X';
+                $playerName=$bots[$bot1]['name'];
                 break;
             case 2:
-                $playerURL=$_POST['ia2URL'];
-                $playerCHAR=$_POST['youIA2'];
+                $playerURL=$bots[$bot2]['url'];
+                $playerCHAR='O';
+                $playerName=$bots[$bot2]['name'];
                 break;
                 
             default:
                 echo "une erreur est survenue";
                 die;
         }
-       $playerRep=getIAResponse($playerCHAR,$playerURL,$grille);
-      	echo "Reponse: ".$playerRep."\n"; 
+	$playerRep=getIAResponse($playerCHAR,$playerURL,$grille);
 	//tester la validité de la réponse
-       if((isset($grille[$playerRep])) && ($grille[$playerRep]=="")){
-            //reponse conforme
-            echo  $playerCHAR." joue en ".$playerRep." la nouvelle grille est \n";       
-            $grille[$playerRep]=$playerCHAR;
-            for($j=0;$j<3;$j++){
-                for($i=0;$i<3;$i++){
-                    echo $grille[$j."-".$i];
-                    if ($grille[$j."-".$i]==""){
-                        echo " ";
-                    }
-                }
-                echo "\n";
-            }
-            //tester si trois caracteres allignés
-            if(
-                    (($grille['0-0']==$grille['0-1'])&&($grille['0-1']==$grille['0-2'])&&($grille['0-2']!==""))
-                OR  (($grille['1-0']==$grille['1-1'])&&($grille['1-1']==$grille['1-2'])&&($grille['1-2']!==""))
-                OR  (($grille['2-0']==$grille['2-1'])&&($grille['2-1']==$grille['2-2'])&&($grille['2-2']!==""))
-                OR  (($grille['0-0']==$grille['1-0'])&&($grille['1-0']==$grille['2-0'])&&($grille['2-0']!==""))
-                OR  (($grille['0-1']==$grille['1-1'])&&($grille['1-1']==$grille['2-1'])&&($grille['2-1']!==""))
-                OR  (($grille['0-2']==$grille['1-2'])&&($grille['1-2']==$grille['2-2'])&&($grille['2-2']!==""))
-                OR  (($grille['0-0']==$grille['1-1'])&&($grille['1-1']==$grille['2-2'])&&($grille['2-2']!==""))
-                OR  (($grille['0-2']==$grille['1-1'])&&($grille['1-1']==$grille['2-0'])&&($grille['2-0']!==""))
-            ){
-                echo "le joueur ".$playerCHAR." a gagné.";
-                $end=true;
-                break;
-            }
-            //tester si toutes les cases ne seraient pas prises
-            $full=true;
-            
-             foreach($grille as $char){
-                if($char==""){
-                    $full=false;
-                    break;
-                }
-            }
-            if($full){
-                echo "Match nul";
-                $end=true;
-                break;
-            }
-            
-            //on change de joueur
-            if($playerEnCours==1){
-                $playerEnCours=2;
-            }else{
-                $playerEnCours=1;
-            }
-       }else{
-            echo "le joueur ".$playerCHAR." a fait une réponse non conforme. Il perd";
-            break;
-       
-       }
-    }
-}
-
-function getIAResponse($youChar,$iaBaseUrl,$grille){
-    $paramsGrille="";
-    foreach($grille as $key => $case){
-        $paramsGrille.="&".$key."=".$case;
+	if((isset($grille[$playerRep])) && ($grille[$playerRep]=="")){
+	      //reponse conforme
+	      echo  "

".$playerName." joue en ".$playerRep." la nouvelle grille est
"; + $grille[$playerRep]=$playerCHAR; + echo ""; + for($j=0;$j<3;$j++){ + echo ""; + for($i=0;$i<3;$i++){ + echo ""; + } + echo ""; + } + echo "
".$grille[$j."-".$i]."
"; + //tester si trois caracteres allignés + if( + (($grille['0-0']==$grille['0-1'])&&($grille['0-1']==$grille['0-2'])&&($grille['0-2']!=="")) + OR (($grille['1-0']==$grille['1-1'])&&($grille['1-1']==$grille['1-2'])&&($grille['1-2']!=="")) + OR (($grille['2-0']==$grille['2-1'])&&($grille['2-1']==$grille['2-2'])&&($grille['2-2']!=="")) + OR (($grille['0-0']==$grille['1-0'])&&($grille['1-0']==$grille['2-0'])&&($grille['2-0']!=="")) + OR (($grille['0-1']==$grille['1-1'])&&($grille['1-1']==$grille['2-1'])&&($grille['2-1']!=="")) + OR (($grille['0-2']==$grille['1-2'])&&($grille['1-2']==$grille['2-2'])&&($grille['2-2']!=="")) + OR (($grille['0-0']==$grille['1-1'])&&($grille['1-1']==$grille['2-2'])&&($grille['2-2']!=="")) + OR (($grille['0-2']==$grille['1-1'])&&($grille['1-1']==$grille['2-0'])&&($grille['2-0']!=="")) + ){ + echo "

".$playerName." ".$playerCHAR." a gagné.

"; + $end=true; + break; + } + //tester si toutes les cases ne seraient pas prises + $full=true; + foreach($grille as $char){ + if($char==""){ + $full=false; + break; + } + } + if($full){ + echo "

Match nul

"; + $end=true; + break; + } + + //on change de joueur + if($playerEnCours==1){ + $playerEnCours=2; + }else{ + $playerEnCours=1; + } + }else{ + echo "

".$playerName." a fait une réponse non conforme. Il perd

"; + break; + + } } - $url=$iaBaseUrl."?you=".$youChar.$paramsGrille; - echo "\n".$url."\n"; - //return http_get($url); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - // $output contains the output string - $output = curl_exec($ch); - // close curl resource to free up system resources - curl_close($ch); - return htmlentities($output); + + die; + break; + default: + break; + } +}else{ + $bot1=0; + $bot2=0; } +?> + +Arbitre Morpion + + + + +

Arène à morpions

+
+ +
+

Lancer un combat

+

+ +  VS  + +

+

+
+
+
- - + \ No newline at end of file diff --git a/morpionsFights/Master/listOfBots.txt b/morpionsFights/Master/listOfBots.txt new file mode 100644 index 0000000..1b62ded --- /dev/null +++ b/morpionsFights/Master/listOfBots.txt @@ -0,0 +1,3 @@ +stupidAI http://morpionmaster.tinad.fr/stupidIa.php +Moul http://tictactoe.m.42.am/ +Gnieark http://morpionmaster.tinad.fr/gnieark.php \ No newline at end of file