commit
9222b6ff7b
|
@ -77,13 +77,22 @@ if($currentArena == ""){
|
|||
<style type="text/css">
|
||||
@import url(/style.css);
|
||||
</style>
|
||||
<?php
|
||||
//script js de l'arene
|
||||
if(isset($currentArenaArr['jsFile'])){
|
||||
echo '<script type="text/javascript"><!--';
|
||||
echo file_get_contents("../src/arenas/".$currentArena."/".$currentArenaArr['jsFile']);
|
||||
echo '--></script>';
|
||||
}
|
||||
?>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<h1><?php echo $siteTitle; ?></h1>
|
||||
<nav id="languages"><a href="-fr">fr</a> <a href="-en">en</a></nav>
|
||||
<nav id="menus"><a href="/"><?php echo $lang['HOME']; ?></a>
|
||||
<nav id="menus"><a href="/"<?php if($currentArena == "") echo ' class="selected"'; ?>><?php echo $lang['HOME']; ?></a>
|
||||
<?php
|
||||
foreach($arenas as $arena){
|
||||
if( $arena['id'] == $currentArena){
|
||||
|
|
0
src/arenas/tictactoe/act.php
Normal file
0
src/arenas/tictactoe/act.php
Normal file
48
src/arenas/tictactoe/functions.php
Normal file
48
src/arenas/tictactoe/functions.php
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
function get_Post_Params(){
|
||||
$keysBots=array('bot1','bot2');
|
||||
foreach($keysBots as $botKey){
|
||||
if(!isset($_POST[$botKey])){
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric(($_POST[$botKey]))){
|
||||
|
||||
}
|
||||
if(($_POST[$botKey] < 0) OR ($_POST[$botKey] > count($bots))){
|
||||
error(400,"wrong parameters");
|
||||
die;
|
||||
}
|
||||
}
|
||||
return array('bot1' => $_POST['bot1'],'bot2' => $_POST['bot2']);
|
||||
}
|
||||
|
||||
function get_Bots_Array(){
|
||||
//Recupérer la liste des Bots
|
||||
$bots=array();
|
||||
$botsList=explode("\n",file_get_contents(__DIR__."/listOfBots.txt"));
|
||||
|
||||
foreach($botsList as $botLigne){
|
||||
if(preg_match("/\ (http|https):\/\//", $botLigne)){
|
||||
list($name,$url)=explode(" ",$botLigne);
|
||||
$bots[]=array("name" => $name, "url" =>$url);
|
||||
}
|
||||
}
|
||||
return $bots;
|
||||
}
|
||||
function get_IA_Response($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);
|
||||
}
|
39
src/arenas/tictactoe/js.js
Normal file
39
src/arenas/tictactoe/js.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
function Ajx(){
|
||||
var request = false;
|
||||
try {request = new ActiveXObject('Msxml2.XMLHTTP');}
|
||||
catch (err2) {
|
||||
try {request = new ActiveXObject('Microsoft.XMLHTTP');}
|
||||
catch (err3) {
|
||||
try { request = new XMLHttpRequest();}
|
||||
catch (err1) {
|
||||
request = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return request;
|
||||
}
|
||||
function tictactoe(bot1,bot2,xd_check){
|
||||
document.getElementById('fightResult').innerHTML = '<p>Please wait...</p>';
|
||||
var xhr = Ajx();
|
||||
xhr.onreadystatechange = function(){if(xhr.readyState == 4){
|
||||
if(xhr.status == 200) {
|
||||
document.getElementById('fightResult').innerHTML = xhr.responseText;
|
||||
}
|
||||
}};
|
||||
xhr.open("POST", 'index.php', true);
|
||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
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');
|
||||
}
|
||||
|
3
src/arenas/tictactoe/listOfBots.txt
Normal file
3
src/arenas/tictactoe/listOfBots.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
stupidAI http://morpionmaster.tinad.fr/stupidIa.php
|
||||
moul http://tictactoe.m.42.am/
|
||||
Gnieark http://morpionmaster.tinad.fr/gnieark.php
|
|
@ -1 +1,45 @@
|
|||
<h2> tic tac toe </h2>
|
||||
<?php
|
||||
require_once(__DIR__."/functions.php");
|
||||
|
||||
$bots=get_Bots_Array();
|
||||
$postParams=get_Post_Params();
|
||||
if(!$postParams){
|
||||
$bot1="";
|
||||
$bot2="";
|
||||
}else{
|
||||
$bot1=$postParams['bot1'];
|
||||
$bot2=$postParams['bot2'];
|
||||
}
|
||||
|
||||
?>
|
||||
<article>
|
||||
<h2>Lancer un combat</h2>
|
||||
<p>
|
||||
<select name="bot1" id="bot1">
|
||||
<?php
|
||||
for($i=0;$i<count($bots);$i++){
|
||||
if($i==$bot1)
|
||||
$selected='selected="selected"';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
echo '<option value="'.$i.'" '.$selected.'>'.$bots[$i]['name'].'</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
VS
|
||||
<select name="bot2" id="bot2">
|
||||
<?php
|
||||
for($i=0;$i<count($bots);$i++){
|
||||
if($i==$bot2)
|
||||
$selected='selected="selected"';
|
||||
else
|
||||
$selected='';
|
||||
echo '<option value="'.$i.'" '.$selected.'>'.$bots[$i]['name'].'</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</p>
|
||||
<p><input type="button" value="Fight!" onclick="tictactoe(document.getElementById('bot1').value,document.getElementById('bot2').value);"></p>
|
||||
</article>
|
||||
<article id="fightResult"></article>
|
|
@ -3,7 +3,8 @@ $arenas=array(
|
|||
array(
|
||||
'id' => "tictactoe",
|
||||
'url' => "/tictactoe",
|
||||
'title' => "Tic Tac Toe"
|
||||
'title' => "Tic Tac Toe",
|
||||
'jsFile'=> "js.js"
|
||||
),
|
||||
array(
|
||||
'id' => "Battleship",
|
||||
|
|
Loading…
Reference in New Issue
Block a user