la création de la partie

This commit is contained in:
2024-04-16 23:25:57 +02:00
parent 281fa483e8
commit 5a29785672
2 changed files with 148 additions and 27 deletions

View File

@@ -11,11 +11,13 @@ function rangDansPlateau(int $idplateau, int $rang)
$idplateau . " AND rang = " . $rang)['instances']);
}
function getCarteID(String $couleur, int $index) {
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) {
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']);
}
@@ -30,7 +32,7 @@ function ajouterCartesAlea(string $couleur, int $nbCartesCouleurPartie, int $nbC
$nbCartesJeu = get_infos_requete("SELECT nombre FROM cartes_jeu WHERE couleur = '" . $couleur . "'")['instances'][0]['nombre'];
for ($i = 0; $i < $nbCartesCouleurPartie; $i++) {
$rang = 1;
$rang = rand(1, $nbCartes);
while (rangDansPlateau($idplateau, $rang)) {
$rang = rand(1, $nbCartes);
}
@@ -55,8 +57,6 @@ function creerPartie(int $nbCartesVertes, int $nbCartesOranges, int $nbCartesNoi
$idplateau = $res['instances'][0]['idplateau'];
println("ID plateau : " . $idplateau);
$res = get_infos_requete("INSERT INTO partie (date_partie, horaire, etat, idplateau) VALUES (NOW(), NOW(), 'a venir', "
. $idplateau . ") RETURNING idpartie");
@@ -67,20 +67,62 @@ function creerPartie(int $nbCartesVertes, int $nbCartesOranges, int $nbCartesNoi
$idpartie = $res['instances'][0]['idpartie'];
println("ID partie : " . $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 . ");");
}
}
?>