Skip to content
Extraits de code Groupes Projets
Valider 1e316291 rédigé par Eliah REBSTOCK's avatar Eliah REBSTOCK
Parcourir les fichiers

Algorithme fonctionnel d'ajout de partie premier jet

parent cb54df81
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!2Dev phoenix
...@@ -56,10 +56,17 @@ class Partie extends Model ...@@ -56,10 +56,17 @@ class Partie extends Model
private static function classeur($score, $id_jeu){ private static function classeur($score, $id_jeu){
$db = Database::getInstance(); $db = Database::getInstance();
$sql = "SELECT classement FROM R_joueur_jeu WHERE ;"; $sql = "SELECT classement, score FROM R_joueur_jeu WHERE jeu = :id_jeu SORT BY classement DESC;";
$stmt = $db->prepare($sql); $stmt = $db->prepare($sql);
if($stmt->execute(array(":id_jeu" => $id_jeu))) {
while ($tmp = $stmt->fetch()) {
if ($score <= $tmp['score'])
{
return $tmp['classement'] + 1;
}
}
}
return 1;
} }
...@@ -68,19 +75,23 @@ class Partie extends Model ...@@ -68,19 +75,23 @@ class Partie extends Model
$datestr = date("Y-m-d H:i:s"); $datestr = date("Y-m-d H:i:s");
$sql0 = "SELECT id FROM R_jeu WHERE nom = :nom_jeu;"; $sql0 = "SELECT id FROM R_jeu WHERE nom = :nom_jeu;";
$sql1 = "INSERT INTO R_partie (id_jeu, date) VALUES (:id_jeu, :date);"; $sql1 = "INSERT INTO R_partie (id_jeu, date) VALUES (:id_jeu, :date);";
$sql2 = "SELECT slug FROM R_joueur WHERE pseudo = :joueur;"; $sqlp = "SELECT id FROM R_partie WHERE id_jeu = :id_jeu AND date = :date;";
$sql2 = "SELECT id FROM R_joueur WHERE nom = :joueur;";
$sql3 = "SELECT score FROM R_joueur_jeu WHERE joueur = :id_joueur AND jeu = :id_jeu;"; $sql3 = "SELECT score FROM R_joueur_jeu WHERE joueur = :id_joueur AND jeu = :id_jeu;";
$sql4 = "INSERT INTO R_joueur_partie (partie, joueur, classement, score) $sql4 = "INSERT INTO R_joueur_partie (partie, joueur, classement, score, id_jeu)
VALUES (:id_jeu, :id_joueur, :classement, :score);"; VALUES (:id_partie, :id_joueur,:classement, :score, :id_jeu);";
$sql5 = "UPDATE R_joueur_jeu SET score = :new_score WHERE joueur = :id_joueur AND jeu = :id_jeu;"; $sql5 = "UPDATE R_joueur_jeu SET score = :new_score, classement = :new_classement WHERE joueur = :id_joueur AND jeu = :id_jeu;";
$sqlN = "INSERT INTO R_joueur_jeu (joueur, jeu, score, classement) VALUES (:id_joueur, :id_jeu, :score, :classement);"; $sqlN = "INSERT INTO R_joueur_jeu (joueur, jeu, score) VALUES (:id_joueur, :id_jeu, :score);";
$sql6 = "UPDATE R_joueur_jeu SET classement = classement + 1 WHERE classement > :new_classement;";
$stmt0 = $db->prepare($sql0); $stmt0 = $db->prepare($sql0);
$stmt1 = $db->prepare($sql1); $stmt1 = $db->prepare($sql1);
$stmtp = $db->prepare($sqlp);
$stmt2 = $db->prepare($sql2); $stmt2 = $db->prepare($sql2);
$stmt3 = $db->prepare($sql3); $stmt3 = $db->prepare($sql3);
$stmt4 = $db->prepare($sql4); $stmt4 = $db->prepare($sql4);
$stmt5 = $db->prepare($sql5); $stmt5 = $db->prepare($sql5);
$stmt6 = $db->prepare($sql6);
print($nom_jeu);
if($stmt0->execute(array(":nom_jeu" => $nom_jeu))) { if($stmt0->execute(array(":nom_jeu" => $nom_jeu))) {
if($row = $stmt0->fetch()) { if($row = $stmt0->fetch()) {
...@@ -90,6 +101,8 @@ class Partie extends Model ...@@ -90,6 +101,8 @@ class Partie extends Model
if($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr))) if($stmt1->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr)))
{ {
$stmtp->execute(array(":id_jeu" => $id_jeu, ":date" => $datestr));
$id_partie = $stmtp->fetch()['id'];
$m = count($joueurs); $m = count($joueurs);
$id_joueur = array_fill(0, $m, 0); $id_joueur = array_fill(0, $m, 0);
for ($j = 0; $j<$m; $j++){ for ($j = 0; $j<$m; $j++){
...@@ -109,17 +122,21 @@ class Partie extends Model ...@@ -109,17 +122,21 @@ class Partie extends Model
$old_score[$j] = $row[0]; $old_score[$j] = $row[0];
} }
else { else {
$old_score[$j] = 1000; $old_score[$j] = 1000;
$classement = Partie::classeur($score);
$stmtN = $db->prepare($sqlN); $stmtN = $db->prepare($sqlN);
if($stmtN->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu, ":score" => 1000, ":classement" => $classement))){ if($stmtN->execute(array(":id_joueur" => $id_joueur[$j], ":id_jeu" => $id_jeu, ":score" => 1000))){
echo "insertion joueur $j<br />";
}
else{
echo "stmt n, dc <br />";
print_r($id_joueur);
print($id_jeu);
die();
} }
} }
} }
else else
echo "stmt3, dc"; echo "stmt3, dc<br />";
} }
$diff_scores = ELO_scores($scores, $scores, 32); $diff_scores = ELO_scores($scores, $scores, 32);
$classement = self::calcul_classement($diff_scores); $classement = self::calcul_classement($diff_scores);
...@@ -127,31 +144,35 @@ class Partie extends Model ...@@ -127,31 +144,35 @@ class Partie extends Model
print_r($diff_scores); print_r($diff_scores);
for($j = 0; $j<$m; $j++) { for($j = 0; $j<$m; $j++) {
if($stmt4->execute(array(":id_jeu" => $id_jeu, if($stmt4->execute(array(":id_partie" => $id_partie,
":id_joueur" => $id_joueur[$j], ":id_joueur" => $id_joueur[$j], "id_jeu" => $id_jeu,
":classement" => $classement[$j], ":score" => $old_score[$j]))) { ":classement" => $classement[$j], ":score" => $old_score[$j]))) {
$newS = $old_score[$j] + $diff_scores[$j]; $newS = $old_score[$j] + $diff_scores[$j];
print($newS); print($newS);
$classement_jeu = Partie::classeur($newS, $id_jeu);
if ($stmt5->execute(array(":new_score" => $newS, if ($stmt5->execute(array(":new_score" => $newS,
":id_jeu" => $id_jeu, ":id_joueur" => $id_joueur[$j])) ":id_jeu" => $id_jeu, ":id_joueur" => $id_joueur[$j], ":new_classement" => $classement_jeu))
) { ) {
//C'est dans la boite if ($stmt6->execute(array(":new_classement" => $classement_jeu))){
echo "works well enough"; //C'est dans la boite
echo "works well enough<br />";
}
else
echo "stmt6, dc<br />";
} }
else else
echo "stmt5, dc"; echo "stmt5, dc<br />";
} }
else else
echo "stmt4, dc"; echo "stmt4, dc<br />";
} }
} }
else else
echo "stmt1, dc"; echo "stmt1, dc<br />";
} }
} }
else { else {
echo "Arise, ça marche pas..."; die(); echo "Arise, ça marche pas...<br />"; die();
} }
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter