www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit d3dfcfe5d4ef43eb35a6e4567b9ab5620941cc41
parent 37639da14b59cc4b479489648f16ace6aed1e7af
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Wed,  9 Feb 2011 12:11:59 +0100

Correction (NON TESTÉ du bug de doublons dans le serveur).

Diffstat:
Mcode/serveur/php/pticlic.php | 64+++++++++++++++++++++++++++++++++++-----------------------------
1 file changed, 35 insertions(+), 29 deletions(-)

diff --git a/code/serveur/php/pticlic.php b/code/serveur/php/pticlic.php @@ -169,7 +169,8 @@ function cg_build_cloud($cloudSize, $sources, $sumWeights) $sumw = 0; $src = $sources['rand']; $srck = null; - + + // Sélection d'une source aléatoire foreach ($sources as $k => $x) { $sumw += $x['w']; @@ -182,6 +183,7 @@ function cg_build_cloud($cloudSize, $sources, $sumWeights) } } + // Vérification si on est à la fin du ResultSet de cette source. if ($src['rsPos'] >= $src['rsSize']) { $nbFailed++; @@ -194,13 +196,17 @@ function cg_build_cloud($cloudSize, $sources, $sumWeights) continue; } - - $res = $src['resultSet'][$src['rsPos']++]; - if (in_array($res['eid'], $cloud)) - { - $nbFailed++; - continue; + // On récupère un résultat de cette source. + // TODO : vérifier que $src['rsPos']++ fait ce que l'on veut + $res = $src['resultSet'][$src['rsPos']++]; + + // TODO (FAIT) : vérifier si $res['eid'] est présent dans un des $cloud[*]['eid'], car la condition qui suit est fausse. + foreach ($c in $cloud) { + if ($c['eid'] == $res['eid']) { + $nbFailed++; + continue; + } } // position dans le nuage, difficulté, eid, probaR1, probaR2 @@ -321,31 +327,10 @@ function game2json($game_id) } -/** La fonction principale. -* @param action : Un identifiant d'action. -*/ -function main($action) -{ - // Sinon tout est bon on effectu l'opération correspondant à la commande passée. - // TODO : en production, utiliser : header("Content-Type: application/json; charset=utf-8"); - header("Content-Type: text/plain; charset=utf-8"); - - if ($action == 2) // "Create partie" - createGame(); - else if($action == 0) // "Get partie" - getGame(); - else if($action == 1) // "Set partie" - setGame(); - else - mDie(2,"Commande inconnue"); -} - - /** Création d'une partie. */ function createGame() { - // Requête POST : http://serveur/pticlic.php?action=2&nb=2&mode=normal&user=foo&passwd=bar if(!isset($_GET['nb']) || !isset($_GET['mode'])) mDie(2,"La requête est incomplète"); @@ -360,7 +345,6 @@ function createGame() */ function getGame() { - // Requête POST : http://serveur/pticlic.php?action=0&nb=2&mode=normal&user=foo&passwd=bar if(!isset($_GET['nb']) || !isset($_GET['mode'])) mDie(2,"La requête est incomplète"); @@ -448,6 +432,28 @@ function setGame() game2json(random_game()); } +/** La fonction principale. +* @param action : Un identifiant d'action. +*/ +function main($action) +{ + // Sinon tout est bon on effectu l'opération correspondant à la commande passée. + // TODO : en production, utiliser : header("Content-Type: application/json; charset=utf-8"); + header("Content-Type: text/plain; charset=utf-8"); + + if ($action == 2) // "Create partie" + // Requête POST : http://serveur/pticlic.php?action=2&nb=2&mode=normal&user=foo&passwd=bar + createGame(); + else if($action == 0) // "Get partie" + // Requête POST : http://serveur/pticlic.php?action=0&nb=2&mode=normal&user=foo&passwd=bar + getGame(); + else if($action == 1) // "Set partie" + // Requête POST : http://serveur/pticlic.php?action=1&mode=normal&user=foo&passwd=bar&gid=1234&pgid=12357&0=0&1=-1&2=22&3=13&9=-1 + setGame(); + else + mDie(2,"Commande inconnue"); +} + main($action); ?>