Merge pull request #5 from gnieark/dev

Dev
This commit is contained in:
Gnieark 2015-11-28 15:54:05 +01:00
commit c383ac8c57
6 changed files with 126 additions and 39 deletions

View File

@ -9,17 +9,14 @@
# http://www.gnu.org/licenses/gpl-3.0-standalone.html # http://www.gnu.org/licenses/gpl-3.0-standalone.html
# #
# -- END LICENSE BLOCK ----------------------------------------- # -- END LICENSE BLOCK -----------------------------------------
//démmarrer une session php
@session_start(); @session_start();
require_once("../src/functions.php"); require_once("../src/functions.php");
$arenas=get_arenas_list(); $arenas=get_arenas_list();
$lang=get_language_array(); $lang=get_language_array();
if(isset($_GET['arena'])){ if(isset($_GET['arena'])){
//check if arena is list //check if arena is list
$currentArena = false; $currentArena = false;
@ -38,21 +35,17 @@ if(isset($_GET['arena'])){
$currentArena = ""; $currentArena = "";
} }
//form submitting //form submitting
if (isset($_POST['xd_check'])){ if (isset($_POST['xd_check'])){
//vérifier le numero de formulaire //vérifier le numero de formulaire
if (($_SESSION['xd_check']!=$_POST['xd_check']) AND ($_POST['xd_check'] !="")){ if (($_SESSION['xd_check']!=$_POST['xd_check']) AND ($_POST['xd_check'] !="")){
erreur ('Something wrong has appen'); error (400, 'Something wrong has appen');
die; die;
} }
//call the good act.php //call the good act.php
if(($currentArena <> "") && (file_exists("../src/arenas/".$currentArena."/act.php"))){ if(($currentArena <> "") && (file_exists("../src/arenas/".$currentArena."/act.php"))){
require_once("../src/arenas/".$currentArena."/act.php"); require_once("../src/arenas/".$currentArena."/act.php");
}else{
require_once("../src/arenas/".$currentArena."/act.php");
} }
} }
//title //title
if($currentArena == ""){ if($currentArena == ""){
@ -65,9 +58,7 @@ if($currentArena == ""){
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="ROBOTS" content="INDEX, FOLLOW" /> <meta name="ROBOTS" content="INDEX, FOLLOW" />
@ -78,17 +69,15 @@ if($currentArena == ""){
@import url(/style.css); @import url(/style.css);
</style> </style>
<?php <?php
//script js de l'arene //arena specific script js (if needed)
if(isset($currentArenaArr['jsFile'])){ if(isset($currentArenaArr['jsFile'])){
echo '<script type="text/javascript"><!--'; echo '<script type="text/javascript"><!--'."\n";
echo file_get_contents("../src/arenas/".$currentArena."/".$currentArenaArr['jsFile']); echo file_get_contents("../src/arenas/".$currentArena."/".$currentArenaArr['jsFile']);
echo '--></script>'; echo "\n--></script>";
} }
?> ?>
</head> </head>
<body> <body>
<header> <header>
<h1><?php echo $siteTitle; ?></h1> <h1><?php echo $siteTitle; ?></h1>
<nav id="languages"><a href="-fr">fr</a>&nbsp;<a href="-en">en</a></nav> <nav id="languages"><a href="-fr">fr</a>&nbsp;<a href="-en">en</a></nav>

View File

@ -0,0 +1,103 @@
<?php
require_once(__DIR__."/functions.php");
switch ($_POST['act']){
case "fight":
$bots=get_Bots_Array();
//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>";
$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>";
$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;
}

View File

@ -1,5 +1,5 @@
<?php <?php
function get_Post_Params(){ function get_Post_Params($botsCount){
$keysBots=array('bot1','bot2'); $keysBots=array('bot1','bot2');
foreach($keysBots as $botKey){ foreach($keysBots as $botKey){
if(!isset($_POST[$botKey])){ if(!isset($_POST[$botKey])){
@ -8,7 +8,7 @@ function get_Post_Params(){
if(!is_numeric(($_POST[$botKey]))){ if(!is_numeric(($_POST[$botKey]))){
} }
if(($_POST[$botKey] < 0) OR ($_POST[$botKey] > count($bots))){ if(($_POST[$botKey] < 0) OR ($_POST[$botKey] > $botsCount)){
error(400,"wrong parameters"); error(400,"wrong parameters");
die; die;
} }

View File

@ -20,20 +20,7 @@ function tictactoe(bot1,bot2,xd_check){
document.getElementById('fightResult').innerHTML = xhr.responseText; document.getElementById('fightResult').innerHTML = xhr.responseText;
} }
}}; }};
xhr.open("POST", 'index.php', true); xhr.open("POST", '/tictactoe', true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send('act=fight&bot1=' + bot1 + '&bot2=' + bot2 + '&xd_check=' + ,xd_check); xhr.send('act=fight&bot1=' + bot1 + '&bot2=' + bot2 + '&xd_check=' + xd_check);
} }
function refreshBots(){
var xhr = Ajx();
xhr.onreadystatechange = function(){if(xhr.readyState == 4){
if(xhr.status == 200) {
window.location.reload();
}
}};
xhr.open("POST", 'index.php', true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send('act=reDownloadBotsList');
}

View File

@ -2,7 +2,7 @@
require_once(__DIR__."/functions.php"); require_once(__DIR__."/functions.php");
$bots=get_Bots_Array(); $bots=get_Bots_Array();
$postParams=get_Post_Params(); $postParams=get_Post_Params(count($bots));
if(!$postParams){ if(!$postParams){
$bot1=""; $bot1="";
$bot2=""; $bot2="";
@ -40,6 +40,6 @@ if(!$postParams){
?> ?>
</select> </select>
</p> </p>
<p><input type="button" value="Fight!" onclick="tictactoe(document.getElementById('bot1').value,document.getElementById('bot2').value);"></p> <p><input type="button" value="Fight!" onclick="tictactoe(document.getElementById('bot1').value,document.getElementById('bot2').value,'<?php echo xd_check_input(2); ?>');"></p>
</article> </article>
<article id="fightResult"></article> <article id="fightResult"></article>

View File

@ -86,6 +86,14 @@ function error($code,$message){
header("HTTP/1.0 404 Not Found"); header("HTTP/1.0 404 Not Found");
echo '<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8" /><title>Page Not found</title></head><body><p>'.$message.'</p></body></html>'; echo '<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8" /><title>Page Not found</title></head><body><p>'.$message.'</p></body></html>';
die; die;
case 400:
header ("HTTP/1.0 400 Bad Request");
echo '<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8" /><title>Bad request</title></head><body><p>'.$message.'</p></body></html>';
die;
case 500:
header ("HTTP/1.0 500 Internal Server Error");
echo '<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8" /><title>Bad request</title></head><body><p>'.$message.'</p></body></html>';
die;
default: default:
die; die;