exist() ) exit(); /* * LANCER UNE NOUVELLE PARTIE */ if( isset($_GET['new']) ) { $db->req("UPDATE ".$__CONF['dbtablepre']."parties SET statut=0 WHERE id=".$scPartie->id.";"); $db->req("UPDATE ".$__CONF['dbtablepre']."joueurs SET statut=0 WHERE partie_id=".$scPartie->id.";"); exit(); } /* * POSITIONNER UN MEEPLE */ if( isset($_GET['meeple']) ) { if($scPartie->statut % 2 != 1 && $scPartie->statut >= 9) exit(); $meepleId = ($scPartie->statut + 1) / 2; $db->req("UPDATE ".$__CONF['dbtablepre']."joueurs SET position_meeple".$meepleId."=".(100 + intval($_GET['meeple']))." WHERE partie_id=".$scPartie->id." AND statut>0;"); $db->req("UPDATE ".$__CONF['dbtablepre']."parties SET statut=(statut+1) WHERE id=".$scPartie->id.";"); exit(); } /* * POSITIONNER UN TEMPLE */ if( isset($_GET['temple']) ) { if($scPartie->statut % 2 != 0 && $scPartie->statut >= 9) exit(); $templeId = $scPartie->statut / 2; $db->req("UPDATE ".$__CONF['dbtablepre']."joueurs SET position_temple".$templeId."=".intval($_GET['temple'])." WHERE partie_id=".$scPartie->id." AND statut>0;"); $db->req("UPDATE ".$__CONF['dbtablepre']."parties SET statut=(statut+1) WHERE id=".$scPartie->id.";"); exit(); } /* * JOUE */ function compileDernierCoup($j, $tuile) { global $db, $scPartie, $__CONF; $dcAction = $j->dernier_coup[0]; $dcVal = substr($j->dernier_coup, 1); // Pose de la tuile sur le plateau if($dcAction == 'c') { $j->plateau[ $dcVal - 1 ] = $tuile; } // Deplacement d'un meeple elseif($dcAction == 'm') { $dcMeeple = $dcVal[0]; $dcActionType = $dcVal[1]; $dcInfo = substr($dcVal, 2); // Deplacement du meeple sur une case du plateau if($dcActionType == 'c') { $caseHasPepite = substr($j->plateau[ $dcInfo - 1 ], -1); if($caseHasPepite == 'o' || $caseHasPepite == 'd') { $j->plateau[ $dcInfo - 1 ] = substr( $j->plateau[ $dcInfo - 1 ], 0, -1 ); if($caseHasPepite == 'o') $j->or++; if($caseHasPepite == 'd') $j->diamant++; } $j->meeple[ $dcMeeple - 1 ] = $dcInfo; } // Deplacement du meeple sur un temple elseif($dcActionType == 't') { $templeId = 0; for($i = 0 ; $i < count($j->temple) ; $i++) if($j->temple[$i] == $dcInfo) $templeId = $i; $j->tresor[$templeId] = $scPartie->gagneTresor($templeId); $j->meeple[ $dcMeeple - 1 ] = $dcInfo + 200; } } $db->req("UPDATE ".$__CONF['dbtablepre']."joueurs SET plateau='".$j->plateauTxt()."', tresor1='".$j->tresor[0]."', tresor2='".$j->tresor[1]."', tresor3='".$j->tresor[2]."', tresor4='".$j->tresor[3]."', pepite_diamant=".$j->diamant.", pepite_or=".$j->or.", dernier_coup='', position_meeple1=".$j->meeple[0].", position_temple1=".$j->temple[0].", position_meeple2=".$j->meeple[1].", position_temple2=".$j->temple[1].", position_meeple3=".$j->meeple[2].", position_temple3=".$j->temple[2].", position_meeple4=".$j->meeple[3].", position_temple4=".$j->temple[3]." WHERE id=".$j->id.";"); } function verifFinPartie($j) { $fin = 0; for($i = 0 ; $i < count($j->meeple) ; $i++) if($j->meeple[$i] >= 200) $fin++; if( $fin == count($j->meeple) ) return true; return false; } if( isset($_GET['dc']) ) { $db->req("UPDATE ".$__CONF['dbtablepre']."joueurs SET dernier_coup='".$_GET['dc']."' WHERE id=".$scMoi->id.";"); $scMoi->dernier_coup = $_GET['dc']; /* * SI TOUT LE MONDE A DEJA JOUE */ $nbDejaJoue = 0; foreach($scJoueurs as $j) { if($j->dernier_coup != "") $nbDejaJoue++; } if($nbDejaJoue == count($scJoueurs)) { // Extrait la 1ere tuile de la pioche $tuile = array_shift( $scPartie->pioche ); compileDernierCoup($scMoi, $tuile); foreach($scJoueurs as $j) compileDernierCoup($j, $tuile); // Verification des conditions de fin de partie $fin = false; if( count($scPartie->pioche) == 0 ) $fin = true; if( verifFinPartie($scMoi) ) $fin = true; foreach($scJoueurs as $j) if( verifFinPartie($j) ) $fin = true; if($fin) $scPartie->statut++; $db->req("UPDATE ".$__CONF['dbtablepre']."parties SET statut='".$scPartie->statut."', pioche='".$scPartie->piocheTxt()."', tresor1='".$scPartie->tresor[0]."', tresor2='".$scPartie->tresor[1]."', tresor3='".$scPartie->tresor[2]."', tresor4='".$scPartie->tresor[3]."' WHERE id=".$scPartie->id.";"); } exit(); } /* * ENVOI LES INFOS */ // Affiche un tableau function JsonTab($data) { $echoreturn = '['; for($i = 0 ; $i < count($data) ; $i++) { if($i > 0) $echoreturn .= ", "; $echoreturn .= '"'.$data[$i].'"'; } $echoreturn .= ']'; return $echoreturn; } // Affiche les infos d'un joueur function JsonJoueur($j) { $echoreturn = '"'.$j->id.'":{'; // $echoreturn .= '"id":'.$j->id.', '; $echoreturn .= '"tresor":'.JsonTab($j->tresor).', '; $echoreturn .= '"diamant":'.$j->diamant.', '; $echoreturn .= '"or":'.$j->or.', '; $echoreturn .= '"dernier_coup":"'.$j->dernier_coup.'", '; $echoreturn .= '"meeple":'.JsonTab($j->meeple).', '; $echoreturn .= '"temple":'.JsonTab($j->temple).', '; $echoreturn .= '"plateau":'.JsonTab($j->plateau); $echoreturn .= '}'; return $echoreturn; } // Debut du JSON // * Partie echo '{"statut":'.$scPartie->statut.', '; echo '"pioche":"'.$scPartie->pioche[0].'", '; echo '"nbpioche":'.(count($scPartie->pioche) - 1).', '; echo '"tresor":'.JsonTab( $scPartie->nextTresor() ).', '; echo '"tuilesrestantes":{'.$scPartie->tuilesRestantesJson().'}, '; // * Joueurs echo '"joueur":{'; echo JsonJoueur( $scMoi ); foreach($scJoueurs as $j) echo ', '.JsonJoueur($j); echo '}'; echo '}'; // Fin du JSON ?>