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
-
-
-
-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 "
".$grille[$j."-".$i]."
";
+ }
+ echo "
";
+ }
+ echo "
";
+ //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 "
+
+
+
+
-
-
+
\ 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