'; } function rangDansPlateau(int $idplateau, int $rang) { return !empty(get_infos_requete("SELECT idplateau AS nb FROM est_compose WHERE idplateau = " . $idplateau . " AND rang = " . $rang)['instances']); } function getCarteID(string $couleur, int $index) { return get_infos_requete("SELECT idcarte FROM carte WHERE niveau = '" . $couleur . "'")['instances'][$index - 1]['idcarte']; } function carteDansPlateau(int $idplateau, int $idcarte) { return !empty(get_infos_requete("SELECT idcarte AS nb FROM est_compose WHERE idplateau = " . $idplateau . " AND idcarte = " . $idcarte)['instances']); } function ajouterCarte(int $idcarte, int $idplateau, int $rang) { executer_une_requete("INSERT INTO est_compose (idcarte, idplateau, rang) VALUES (" . $idcarte . ", " . $idplateau . ", " . $rang . ")"); } function ajouterCartesAlea(string $couleur, int $nbCartesCouleurPartie, int $nbCartes, int $idplateau) { $nbCartesJeu = get_infos_requete("SELECT nombre FROM cartes_jeu WHERE couleur = '" . $couleur . "'")['instances'][0]['nombre']; for ($i = 0; $i < $nbCartesCouleurPartie; $i++) { $rang = rand(1, $nbCartes); while (rangDansPlateau($idplateau, $rang)) { $rang = rand(1, $nbCartes); } $idcarte = getCarteID($couleur, rand(1, $nbCartesJeu)); while (carteDansPlateau($idplateau, $idcarte)) { $idcarte = getCarteID($couleur, rand(1, $nbCartesJeu)); } ajouterCarte($idcarte, $idplateau, $rang); } } function creerPartie(int $nbCartesVertes, int $nbCartesOranges, int $nbCartesNoires) { $total = $nbCartesVertes + $nbCartesOranges + $nbCartesNoires; $res = get_infos_requete("INSERT INTO plateau (`taille`) VALUES ('" . $total . "') RETURNING idplateau"); if ($res === false) { echo 'La requête a échoué'; return false; } $idplateau = $res['instances'][0]['idplateau']; $res = get_infos_requete("INSERT INTO partie (date_partie, horaire, etat, idplateau) VALUES (NOW(), NOW(), 'a venir', " . $idplateau . ") RETURNING idpartie"); if ($res === false) { echo 'La requête a échoué'; return false; } $idpartie = $res['instances'][0]['idpartie']; ajouterCartesAlea("noire", $nbCartesNoires, $total, $idplateau); ajouterCartesAlea("orange", $nbCartesOranges, $total, $idplateau); ajouterCartesAlea("verte", $nbCartesVertes, $total, $idplateau); return $idpartie; } function getJoueurs() { return get_infos_instances("joueur")['instances']; } function getJoueursPartie(int $idpartie) { return get_infos_requete("SELECT * FROM joue JOIN joueur J USING(idjoueur) WHERE joue.idpartie = " . $idpartie)['instances']; } function ajouter_joueur(int $idpartie, int $idjoueur) { $couleur = rand(0, 16777215); executer_une_requete("INSERT INTO joue (idpartie, idjoueur, couleur_pion) VALUES (" . $idpartie . ", " . $idjoueur . ", " . $couleur . ")"); } function enlever_joueur(int $idpartie, int $idjoueur) { executer_une_requete("DELETE FROM joue WHERE idpartie = " . $idpartie . " AND idjoueur = " . $idjoueur); } function valider_partie(int $idpartie, string $ordre) { $joueurs = null; switch ($ordre) { case "honneurJeune": $joueurs = get_infos_requete("SELECT * FROM joue JOIN joueur J USING(idjoueur) WHERE joue.idpartie = " . $idpartie . " ORDER BY annee_nais"); break; case "honneurNul": $joueurs = get_infos_requete("SELECT idjoueur, COUNT(idjoueur) as nb_parties FROM joueur JOIN joue USING(idjoueur) WHERE idjoueur IN(SELECT idjoueur FROM joue WHERE idpartie=" . $idpartie . ") GROUP BY idjoueur ORDER BY nb_parties"); break; case "aleatoire": // TODO: vrai aléatoire $joueurs = get_infos_requete("SELECT * FROM joue JOIN joueur J USING(idjoueur) WHERE joue.idpartie = " . $idpartie); break; default: debug_log("How did we get there ?"); break; } for ($i = 1; $i <= sizeof($joueurs['instances']); $i++) { executer_une_requete("UPDATE joue SET rang = " . $i . " WHERE (`idjoueur` = " . $joueurs['instances'][$i - 1]['idjoueur'] . ") and (`idpartie` = " . $idpartie . ");"); } } ?>