Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d98d9eaa69 | |||
| 922e7ecbae |
@@ -1,24 +1,324 @@
|
|||||||
<?php
|
<?php
|
||||||
function getJoueursPartie(int $idpartie)
|
function getJoueursPartie(int $idpartie)
|
||||||
{
|
{
|
||||||
return get_infos_requete("SELECT * FROM joue JOIN joueur J USING(idjoueur) WHERE joue.idpartie = " . $idpartie)['instances'];
|
return get_infos_requete("SELECT * FROM joue JOIN joueur J USING(idjoueur) WHERE joue.idpartie = " . $idpartie . " ORDER BY rang")['instances'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_plateau_id(int $idpartie): int
|
||||||
|
{
|
||||||
|
return get_infos_requete("SELECT idplateau FROM partie WHERE idpartie = " . $idpartie)['instances'][0]['idplateau'];
|
||||||
|
}
|
||||||
|
|
||||||
function getJoueursPosition(int $idpartie, int $tour, int $pos)
|
function getJoueursPosition(int $idpartie, int $tour, int $pos)
|
||||||
{
|
{
|
||||||
return get_infos_requete("SELECT idjoueur FROM est_en_position WHERE idpartie = "
|
return get_infos_requete("SELECT idjoueur, rang FROM est_en_position JOIN joue USING(idpartie, idjoueur) WHERE idpartie = "
|
||||||
. $idpartie . " AND position = " . $pos . " AND num_tour = " . $tour)['instances'];
|
. $idpartie . " AND position = " . $pos . " AND num_tour = " . $tour)['instances'];
|
||||||
}
|
}
|
||||||
|
|
||||||
function partie_est_a_venir(int $idpartie) {
|
function getJoueursPositions(int $idpartie, int $tour)
|
||||||
|
{
|
||||||
|
return get_infos_requete("SELECT idjoueur, position FROM est_en_position WHERE idpartie = " .
|
||||||
|
$idpartie . " AND num_tour = " . $tour)['instances'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getJoueurPosition(int $idpartie, int $idjoueur, int $tour)
|
||||||
|
{
|
||||||
|
return get_infos_requete("SELECT idjoueur, position FROM est_en_position WHERE idpartie = " .
|
||||||
|
$idpartie . " AND num_tour = " . $tour . " AND idjoueur = " . $idjoueur)['instances'][0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_carte_id(int $idplateau, int $positionCarte): int
|
||||||
|
{
|
||||||
|
$res = get_infos_requete("SELECT idcarte FROM est_compose WHERE idplateau = " .
|
||||||
|
$idplateau . " AND rang = " . $positionCarte)['instances'];
|
||||||
|
if (empty($res))
|
||||||
|
return -1;
|
||||||
|
return $res[0]['idcarte'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_contrainte(int $idcontrainte, string $typeContrainte)
|
||||||
|
{
|
||||||
|
return get_infos_requete("SELECT * FROM " . $typeContrainte . " JOIN contrainte USING(idcontrainte) WHERE idcontrainte = " . $idcontrainte)['instances'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function valide_face_de_de($contrainte, &$des): bool
|
||||||
|
{
|
||||||
|
$couleur = $contrainte['couleur'];
|
||||||
|
$valeur = $contrainte['valeur'];
|
||||||
|
for ($i = 0; $i < sizeof($des); $i++) {
|
||||||
|
$de = $des[$i];
|
||||||
|
if ($de['couleur'] == $couleur && $de['valeur'] == $valeur) {
|
||||||
|
array_splice($des, $i, 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function valide_memes_au_choix($contrainte, &$des): bool
|
||||||
|
{
|
||||||
|
$couleur = $contrainte['couleur'];
|
||||||
|
$nombre = $contrainte['nombre'];
|
||||||
|
$desPareils = array_fill(0, 6, 0);
|
||||||
|
for ($i = 0; $i < sizeof($des); $i++) {
|
||||||
|
$de = $des[$i];
|
||||||
|
if ($de['couleur'] == $couleur) {
|
||||||
|
$desPareils[$de["valeur"] - 1]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ($i = 0; $i < sizeof($desPareils); $i++) {
|
||||||
|
if ($desPareils[$i] >= $nombre) {
|
||||||
|
for ($j = 0; $j < $nombre; $j++) {
|
||||||
|
//enlève une occurence
|
||||||
|
unset($desPareils[array_search($i, $desPareils)]);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function valide_serie_au_choix($contrainte, &$des): bool
|
||||||
|
{
|
||||||
|
$couleur = $contrainte["couleur"];
|
||||||
|
$nombre = $contrainte["nombre"];
|
||||||
|
|
||||||
|
echo 'SHEEEEEEEEEEEEEEEEEEEEEEEESH';
|
||||||
|
|
||||||
|
for ($i = 0; $i < sizeof($des); $i++) {
|
||||||
|
if ($des[$i]["couleur"] == $couleur) {
|
||||||
|
|
||||||
|
echo "je commence avec le dé " . $des[$i]["valeur"] . " !!!!!!!!!!!!! <br/>";
|
||||||
|
|
||||||
|
$suivant = $des[$i]["valeur"] + 1;
|
||||||
|
// pour chaque dé de la série
|
||||||
|
$j = 0;
|
||||||
|
for ($j = 0; $j < $nombre - 1; $j++) {
|
||||||
|
// on le cherche
|
||||||
|
$trouve = false;
|
||||||
|
for ($k = 0; $k < sizeof($des); $k++) {
|
||||||
|
if ($des[$k]["couleur"] == $couleur && $des[$k]["valeur"] == $suivant) {
|
||||||
|
$suivant++;
|
||||||
|
$trouve = true;
|
||||||
|
echo "j'ai trouvé le dé " . $des[$k]["valeur"] . " ! ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$trouve) {
|
||||||
|
echo "j'ai pas trouvé le dé " . $suivant . " ! ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
echo 'CACA ';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "J : " . $j . "<br/>";
|
||||||
|
|
||||||
|
if ($j == $nombre - 1) {
|
||||||
|
// on enlève les bons dés
|
||||||
|
for ($valeur = $des[$i]["valeur"]; $valeur < $valeur + $nombre; $valeur++) {
|
||||||
|
for ($k = 0; $k < sizeof($des); $k++) {
|
||||||
|
if ($des[$k]["couleur"] == $couleur && $des[$k]["valeur"] == $valeur) {
|
||||||
|
array_splice($des, $k, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function valide_seuil_de_des($contrainte, &$des): bool
|
||||||
|
{
|
||||||
|
$couleur = $contrainte['couleur'];
|
||||||
|
$valeur = $contrainte['valeur'];
|
||||||
|
$plusgrand = $contrainte['sens'] == '>' ? true : false;
|
||||||
|
$total = 0;
|
||||||
|
|
||||||
|
for ($i = 0; $i < sizeof($des); $i++) {
|
||||||
|
$de = $des[$i];
|
||||||
|
if ($de['couleur'] == $couleur) {
|
||||||
|
$total += $de['valeur'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($plusgrand) {
|
||||||
|
if ($total <= $valeur)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
while ($total > 0) {
|
||||||
|
for ($i = 0; $i < sizeof($des); $i++) {
|
||||||
|
$de = $des[$i];
|
||||||
|
if ($de['couleur'] == $couleur) {
|
||||||
|
$total -= $de['valeur'];
|
||||||
|
array_splice($des, $i, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if ($total >= $valeur)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
for ($i = 0; $i < sizeof($des); $i++) {
|
||||||
|
$de = $des[$i];
|
||||||
|
if ($de['couleur'] == $couleur && $de['valeur'] < $total) {
|
||||||
|
array_splice($des, $i, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function valide_contrainte(int $idcontrainte, &$des): bool
|
||||||
|
{
|
||||||
|
$contrainte = get_contrainte($idcontrainte, "face_de_de");
|
||||||
|
if (!empty($contrainte)) {
|
||||||
|
return valide_face_de_de($contrainte[0], $des);
|
||||||
|
}
|
||||||
|
|
||||||
|
$contrainte = get_contrainte($idcontrainte, "meme_au_choix");
|
||||||
|
if (!empty($contrainte)) {
|
||||||
|
return valide_memes_au_choix($contrainte[0], $des);
|
||||||
|
}
|
||||||
|
|
||||||
|
$contrainte = get_contrainte($idcontrainte, "serie_au_choix");
|
||||||
|
if (!empty($contrainte)) {
|
||||||
|
return valide_serie_au_choix($contrainte[0], $des);
|
||||||
|
}
|
||||||
|
|
||||||
|
$contrainte = get_contrainte($idcontrainte, "seuil_de_des");
|
||||||
|
if (!empty($contrainte)) {
|
||||||
|
return valide_seuil_de_des($contrainte[0], $des);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo 'QUOOOOOOOOOOOOOOOOOOI';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function valide_carte(int $idcarte, &$des): bool
|
||||||
|
{
|
||||||
|
if ($idcarte == -1)
|
||||||
|
return false;
|
||||||
|
$contraintes = get_carte_contraintes($idcarte);
|
||||||
|
foreach ($contraintes as $contrainte) {
|
||||||
|
if (!valide_contrainte($contrainte['idcontrainte'], $des)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_carte_contraintes(int $idcarte)
|
||||||
|
{
|
||||||
|
return get_infos_requete("SELECT idcontrainte FROM est_contrainte WHERE idcarte = " . $idcarte)['instances'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_des_lancer(int $idlancer)
|
||||||
|
{
|
||||||
|
$res = get_infos_requete("SELECT rang_couleur_valeur FROM de_lance WHERE idlancer = " . $idlancer)['instances'];
|
||||||
|
$des = array();
|
||||||
|
foreach ($res as $row) {
|
||||||
|
$str = $row['rang_couleur_valeur'];
|
||||||
|
$str = explode(';', $str);
|
||||||
|
$couleur = $str[1];
|
||||||
|
$valeur = $str[2];
|
||||||
|
switch ($couleur) {
|
||||||
|
case 'B':
|
||||||
|
$couleur = 'bleu';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'J':
|
||||||
|
$couleur = 'jaune';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'R':
|
||||||
|
$couleur = 'rouge';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
array_push($des, array('couleur' => $couleur, 'valeur' => $valeur));
|
||||||
|
}
|
||||||
|
return $des;
|
||||||
|
}
|
||||||
|
|
||||||
|
function tente_validations(int $idpartie, int $idplateau, int $idlancer, int $tour, int $joueurPos): int
|
||||||
|
{
|
||||||
|
$des = get_des_lancer($idlancer);
|
||||||
|
$cartesValides = 0;
|
||||||
|
while (valide_carte(get_carte_id($idplateau, $joueurPos + $cartesValides + 1), $des)) {
|
||||||
|
$cartesValides++;
|
||||||
|
if (get_carte_id($idplateau, $joueurPos + $cartesValides + 1) == -1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $cartesValides;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_lancers(int $idpartie, int $tour)
|
||||||
|
{
|
||||||
|
return get_infos_requete("SELECT * FROM comprend WHERE idpartie = " .
|
||||||
|
$idpartie . " AND num_tour = " . $tour . " ORDER BY numero_lancer_dans_tour")['instances'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function mettre_a_jour_positions(int $idpartie, int $tour)
|
||||||
|
{
|
||||||
|
$joueurs = getJoueursPositions($idpartie, $tour);
|
||||||
|
$idplateau = get_plateau_id($idpartie);
|
||||||
|
foreach ($joueurs as $joueur) {
|
||||||
|
$joueurPos = $joueur['position'];
|
||||||
|
if ($joueur['idjoueur'] != get_joueur_tour($idpartie, $tour)['idjoueur']) {
|
||||||
|
placer_joueur($joueur['idjoueur'], $idpartie, $tour + 1, $joueurPos);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$lances = get_lancers($idpartie, $tour);
|
||||||
|
for ($i = 0; $i < 3; $i++) {
|
||||||
|
$idlancer = $lances[$i]['idlancer'];
|
||||||
|
$validations = tente_validations($idpartie, $idplateau, $idlancer, $tour, $joueurPos);
|
||||||
|
if ($validations == -1) {
|
||||||
|
// gagné !
|
||||||
|
echo 'GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG';
|
||||||
|
$joueurPos = 13;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$joueurPos += $validations;
|
||||||
|
}
|
||||||
|
placer_joueur($joueur['idjoueur'], $idpartie, $tour + 1, $joueurPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_joueur_tour(int $idpartie, int $tour)
|
||||||
|
{
|
||||||
|
$joueurs = getJoueursPartie($idpartie);
|
||||||
|
$joueur_index = ($tour - 1) % sizeof($joueurs);
|
||||||
|
|
||||||
|
return $joueurs[$joueur_index];
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_joueur_actuel(int $idpartie)
|
||||||
|
{
|
||||||
|
return get_joueur_tour($idpartie, get_partie_tour($idpartie));
|
||||||
|
}
|
||||||
|
|
||||||
|
function partie_est_a_venir(int $idpartie)
|
||||||
|
{
|
||||||
return !empty(get_infos_requete("SELECT idpartie FROM partie WHERE idpartie = " .
|
return !empty(get_infos_requete("SELECT idpartie FROM partie WHERE idpartie = " .
|
||||||
$idpartie . " AND etat = 'a venir'")['instances']);
|
$idpartie . " AND etat = 'a venir'")['instances']);
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_parties_tour(int $idpartie): int {
|
function get_partie_tour(int $idpartie): int
|
||||||
|
{
|
||||||
$tour = get_infos_requete("SELECT * FROM tour WHERE idpartie = "
|
$tour = get_infos_requete("SELECT * FROM tour WHERE idpartie = "
|
||||||
. $idpartie . " ORDER BY num_tour DESC LIMIT 1")['instances'];
|
. $idpartie . " ORDER BY num_tour DESC LIMIT 1")['instances'];
|
||||||
|
|
||||||
if (empty($tour)){
|
if (empty($tour)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,8 +342,105 @@ function get_parties_id()
|
|||||||
return $ids;
|
return $ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
function lancer_partie(int $idpartie) {
|
function placer_joueur(int $idjoueur, int $idpartie, int $tour, int $pos)
|
||||||
executer_une_requete("UPDATE partie SET etat = 'en cours' WHERE idpartie = " . $idpartie);
|
{
|
||||||
|
executer_une_requete("INSERT INTO est_en_position (idjoueur, idpartie, num_tour, position) VALUES ("
|
||||||
|
. $idjoueur . ", " . $idpartie . ", " . $tour . ", " . $pos . ")");
|
||||||
|
}
|
||||||
|
|
||||||
|
function placer_joueurs_debut(int $idpartie)
|
||||||
|
{
|
||||||
|
$joueurs = getJoueursPartie($idpartie);
|
||||||
|
|
||||||
|
foreach ($joueurs as $joueur) {
|
||||||
|
placer_joueur($joueur['idjoueur'], $idpartie, 1, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function lancer_partie(int $idpartie)
|
||||||
|
{
|
||||||
|
executer_une_requete("UPDATE partie SET etat = 'en cours', date_partie = NOW(), horaire = NOW() WHERE idpartie = " . $idpartie);
|
||||||
|
creer_tour($idpartie);
|
||||||
|
placer_joueurs_debut($idpartie);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function inserer_de(int $idlancer, int $rang, string $couleur, int $valeur)
|
||||||
|
{
|
||||||
|
|
||||||
|
$rang_couleur_valeur = $rang . ";" . $couleur . ";" . $valeur;
|
||||||
|
|
||||||
|
executer_une_requete("INSERT INTO de_lance (`rang_couleur_valeur`, `idlancer`) VALUES ('" .
|
||||||
|
$rang_couleur_valeur . "', " . $idlancer . " )");
|
||||||
|
}
|
||||||
|
|
||||||
|
function lancer_la_couleur(int $idlancer, string $couleur, int $nbDes, int $decalage)
|
||||||
|
{
|
||||||
|
$nums = [];
|
||||||
|
for ($i = 0; $i < $nbDes; $i++) {
|
||||||
|
$numDe = rand(1, 6);
|
||||||
|
inserer_de($idlancer, $decalage + $i + 1, $couleur, $numDe);
|
||||||
|
array_push($nums, $numDe);
|
||||||
|
}
|
||||||
|
return $nums;
|
||||||
|
}
|
||||||
|
|
||||||
|
function creer_tour(int $idpartie)
|
||||||
|
{
|
||||||
|
$tour = get_partie_tour($idpartie);
|
||||||
|
|
||||||
|
$tour++;
|
||||||
|
|
||||||
|
executer_une_requete("INSERT INTO tour (idpartie, num_tour) VALUES (" .
|
||||||
|
$idpartie . ", " . $tour . ")");
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_lancer_dans_tour(int $idpartie, int $tour): int
|
||||||
|
{
|
||||||
|
$res = get_infos_requete("SELECT * FROM comprend WHERE idpartie = " .
|
||||||
|
$idpartie . " AND num_tour = " . $tour . " ORDER BY numero_lancer_dans_tour DESC")['instances'];
|
||||||
|
|
||||||
|
if (empty($res))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return $res[0]['numero_lancer_dans_tour'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_lancers_restants(int $idpartie)
|
||||||
|
{
|
||||||
|
return 2 - get_lancer_dans_tour($idpartie, get_partie_tour($idpartie));
|
||||||
|
}
|
||||||
|
|
||||||
|
function lancer_les_des(int $idpartie, int $desbleus, int $desjaunes, int $desrouges)
|
||||||
|
{
|
||||||
|
$total = $desbleus + $desrouges + $desjaunes;
|
||||||
|
|
||||||
|
if ($total != 6) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$des_lances = ["B" => [], "J" => [], "R" => []];
|
||||||
|
|
||||||
|
$idlancer = get_infos_requete("INSERT INTO effectue (idjoueur) VALUES (" .
|
||||||
|
get_joueur_actuel($idpartie)['idjoueur'] . ") RETURNING idlancer")['instances'][0]['idlancer'];
|
||||||
|
|
||||||
|
$des_lances["B"] = lancer_la_couleur($idlancer, "B", $desbleus, 0);
|
||||||
|
$des_lances["J"] = lancer_la_couleur($idlancer, "J", $desjaunes, $desbleus);
|
||||||
|
$des_lances["R"] = lancer_la_couleur($idlancer, "R", $desrouges, $desbleus + $desjaunes);
|
||||||
|
|
||||||
|
$tour = get_partie_tour($idpartie);
|
||||||
|
$lancer_dans_tour = get_lancer_dans_tour($idpartie, $tour) + 1;
|
||||||
|
|
||||||
|
executer_une_requete("INSERT INTO comprend (`idpartie`, `num_tour`, `idlancer`, `numero_lancer_dans_tour`) VALUES ("
|
||||||
|
. $idpartie . ", " . $tour . ", " . $idlancer . ", " . $lancer_dans_tour . ")");
|
||||||
|
|
||||||
|
if ($lancer_dans_tour == 2) {
|
||||||
|
creer_tour($idpartie);
|
||||||
|
mettre_a_jour_positions($idpartie, $tour);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $des_lances;
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
$message = "";
|
$message = "";
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Récupération des parties en cours */
|
||||||
|
/***********************************/
|
||||||
|
|
||||||
$partiestotal = get_parties_venir_cours();
|
$partiestotal = get_parties_venir_cours();
|
||||||
|
|
||||||
if ($partiestotal == null || count($partiestotal) == 0) {
|
if ($partiestotal == null || count($partiestotal) == 0) {
|
||||||
@@ -16,6 +20,10 @@ if ($partiestotal == null || count($partiestotal) == 0) {
|
|||||||
|
|
||||||
$messageterminee = "";
|
$messageterminee = "";
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Récupération des parties terminées */
|
||||||
|
/***********************************/
|
||||||
|
|
||||||
$partiesterm = get_parties_terminees();
|
$partiesterm = get_parties_terminees();
|
||||||
|
|
||||||
if ($partiesterm == null || count($partiesterm) == 0) {
|
if ($partiesterm == null || count($partiesterm) == 0) {
|
||||||
|
|||||||
@@ -1,10 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
$message = "";
|
$message = "";
|
||||||
|
|
||||||
// recupération de la liste des tables
|
/***********************************/
|
||||||
|
/* Récupération des statistiques */
|
||||||
|
/***********************************/
|
||||||
$stats = get_statistiques();
|
$stats = get_statistiques();
|
||||||
|
|
||||||
function get_joueurs_qualifs(int $id){
|
function get_joueurs()
|
||||||
|
{
|
||||||
|
return get_infos_requete("SELECT * FROM joueur")['instances'];
|
||||||
|
}
|
||||||
|
function get_joueurs_qualifs(int $id)
|
||||||
|
{
|
||||||
$requete_qualif_joueurs = "SELECT T.nom, YEAR(T.date_deb), niveau
|
$requete_qualif_joueurs = "SELECT T.nom, YEAR(T.date_deb), niveau
|
||||||
FROM participe Pa
|
FROM participe Pa
|
||||||
JOIN phase Ph USING(idtournoi, niveau)
|
JOIN phase Ph USING(idtournoi, niveau)
|
||||||
@@ -18,12 +25,16 @@ if ($stats == null || count($stats) == 0) {
|
|||||||
$message .= "Aucune statistique n'est disponible!";
|
$message .= "Aucune statistique n'est disponible!";
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Instances des vues des statistiques */
|
||||||
|
/***********************************/
|
||||||
|
|
||||||
$stat_globales = get_infos_instances('stat_globales');
|
$stat_globales = get_infos_instances('stat_globales');
|
||||||
$equipes_top_1 = get_infos_instances('equipes_top_1');
|
$equipes_top_1 = get_infos_instances('equipes_top_1');
|
||||||
$participants_tournois_recents = get_infos_instances('participants_tournois_recents');
|
$participants_tournois_recents = get_infos_instances('participants_tournois_recents');
|
||||||
$joueurs_au_moins_deux_top_5 = get_infos_instances('joueurs_au_moins_deux_top_5');
|
$joueurs_au_moins_deux_top_5 = get_infos_instances('joueurs_au_moins_deux_top_5');
|
||||||
$tailles_plateaux = get_infos_instances('tailles_plateaux');
|
$tailles_plateaux = get_infos_instances('tailles_plateaux');
|
||||||
$top_5_joueurs_parties_jouees = get_infos_instances('top_5_joueurs_parties_jouees');
|
$top_5_joueurs_parties_jouees = get_infos_instances('top_5_joueurs_parties_jouees');
|
||||||
$qualif_joueurs = get_joueurs_qualifs(1);
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
124
css/style.css
@@ -8,14 +8,17 @@ nav,
|
|||||||
main,
|
main,
|
||||||
footer {
|
footer {
|
||||||
padding: 1em 0;
|
padding: 1em 0;
|
||||||
|
border-radius: 1em;
|
||||||
|
margin-top: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
header {
|
header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
background-color: white;
|
background-color: lightgrey;
|
||||||
color: black;
|
color: black;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
border-radius: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header_titre {
|
.header_titre {
|
||||||
@@ -35,7 +38,7 @@ header {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
border: 4px solid gray;
|
border: 4px solid darkgreen;
|
||||||
border-radius: 1em;
|
border-radius: 1em;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -43,16 +46,40 @@ header {
|
|||||||
|
|
||||||
nav {
|
nav {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-evenly;
|
||||||
background-color: gray;
|
background-color: white;
|
||||||
padding-left: 1em;
|
padding-left: 1em;
|
||||||
padding-right: 1em;
|
padding-right: 1em;
|
||||||
line-height: 2em;
|
line-height: 2em;
|
||||||
|
border-radius: 1em;
|
||||||
|
margin: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
main {
|
main {
|
||||||
background-color: lightgrey;
|
background-color: lightgrey;
|
||||||
padding-left: 1em;
|
padding-left: 1em;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* visited link */
|
||||||
|
a:visited {
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* mouse over link */
|
||||||
|
a:hover {
|
||||||
|
color: rgb(105, 140, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* selected link */
|
||||||
|
a:active {
|
||||||
|
color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
@@ -68,6 +95,13 @@ footer {
|
|||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 10%;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 15px;
|
||||||
|
border-radius: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
.notification {
|
.notification {
|
||||||
background-color: #ffffe6;
|
background-color: #ffffe6;
|
||||||
margin: 1em;
|
margin: 1em;
|
||||||
@@ -88,7 +122,8 @@ footer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.panneau_details {
|
.panneau_details {
|
||||||
display: flex;
|
display: flex-root;
|
||||||
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@@ -112,7 +147,22 @@ footer {
|
|||||||
|
|
||||||
.unecarte {
|
.unecarte {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: tomato;
|
}
|
||||||
|
|
||||||
|
.plateau {
|
||||||
|
background-color: green;
|
||||||
|
border-radius: 2em;
|
||||||
|
display: inline-flex;
|
||||||
|
padding: 20px 50px 20px 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p .joueur {
|
||||||
|
margin: 0.5em 0;
|
||||||
|
padding: 0.5em;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid gray;
|
||||||
|
display: table;
|
||||||
|
border-radius: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.panneau_details>div {
|
.panneau_details>div {
|
||||||
@@ -147,6 +197,11 @@ footer {
|
|||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
margin: 1em;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
.bloc_commandes {
|
.bloc_commandes {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -177,3 +232,60 @@ footer {
|
|||||||
.bloc_commandes>select:hover {
|
.bloc_commandes>select:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bloc_commandes_sans_flex {
|
||||||
|
border: 1px solid gray;
|
||||||
|
border-radius: 2em;
|
||||||
|
background-color: white;
|
||||||
|
margin-left: 5%;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
padding: 10px 10px 10px 10px;
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bloc_commandes>input[type="submit"] {
|
||||||
|
width: 15%;
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin-left: 4%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bloc_commandes>select {
|
||||||
|
width: 30%;
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin-left: 1%;
|
||||||
|
margin-right: 1%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bloc_commandes>input[type="submit"]:hover,
|
||||||
|
.bloc_commandes>select:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grand_input {
|
||||||
|
width: 20%;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.en_ligne {
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.en_ligne_suite {
|
||||||
|
display: block ruby;
|
||||||
|
}
|
||||||
|
|
||||||
|
.joueurs {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: initial;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#demotext {
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
text-shadow: rgb(255, 255, 255) 0px 0px 5px, rgb(255, 255, 255) 0px 0px 10px, rgb(255, 255, 255) 0px 0px 15px, rgb(73, 255, 24) 0px 0px 20px, rgb(73, 255, 24) 0px 0px 30px, rgb(73, 255, 24) 0px 0px 40px, rgb(73, 255, 24) 0px 0px 55px, rgb(73, 255, 24) 0px 0px 75px;
|
||||||
|
--darkreader-inline-color: #e8e6e3;
|
||||||
|
--darkreader-inline-bgcolor: #1a1d1e;
|
||||||
|
--darkreader-inline-bgimage: none;
|
||||||
|
}
|
||||||
BIN
img/des/deB1.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
img/des/deB2.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
img/des/deB3.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
img/des/deB4.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
img/des/deB5.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
img/des/deB6.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
img/des/deJ1.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
img/des/deJ2.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
img/des/deJ3.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
img/des/deJ4.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
img/des/deJ5.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
img/des/deJ6.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
img/des/deR1.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
img/des/deR2.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
img/des/deR3.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
img/des/deR4.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
img/des/deR5.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
img/des/deR6.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
@@ -95,6 +95,9 @@ function get_statistiques()
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Récupération des parties à venir et des parties en cours */
|
||||||
|
/***********************************/
|
||||||
function get_parties_venir_cours()
|
function get_parties_venir_cours()
|
||||||
{
|
{
|
||||||
global $connexion;
|
global $connexion;
|
||||||
@@ -123,6 +126,9 @@ function get_parties_venir_cours()
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Récupération des parties terminées avec les différentes variantes, récentes et rapides */
|
||||||
|
/***********************************/
|
||||||
function get_parties_terminees()
|
function get_parties_terminees()
|
||||||
{
|
{
|
||||||
global $connexion;
|
global $connexion;
|
||||||
@@ -312,7 +318,9 @@ function executer_une_requete(string $requete)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* fonction de débug */
|
||||||
|
/***********************************/
|
||||||
|
|
||||||
function debug_log(string $msg)
|
function debug_log(string $msg)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -118,9 +118,8 @@ CREATE TABLE
|
|||||||
|
|
||||||
CREATE TABLE
|
CREATE TABLE
|
||||||
est_en_position (
|
est_en_position (
|
||||||
PRIMARY KEY (idjoueur, idcarte, idpartie, num_tour),
|
PRIMARY KEY (idjoueur, idpartie, num_tour),
|
||||||
idjoueur INTEGER NOT NULL,
|
idjoueur INTEGER NOT NULL,
|
||||||
idcarte INTEGER NOT NULL,
|
|
||||||
idpartie INTEGER NOT NULL,
|
idpartie INTEGER NOT NULL,
|
||||||
num_tour INTEGER NOT NULL,
|
num_tour INTEGER NOT NULL,
|
||||||
position VARCHAR(42)
|
position VARCHAR(42)
|
||||||
@@ -299,8 +298,6 @@ ALTER TABLE est_en_lien ADD FOREIGN KEY (idclassement_1) REFERENCES classement (
|
|||||||
|
|
||||||
ALTER TABLE est_en_position ADD FOREIGN KEY (idpartie, num_tour) REFERENCES tour (idpartie, num_tour);
|
ALTER TABLE est_en_position ADD FOREIGN KEY (idpartie, num_tour) REFERENCES tour (idpartie, num_tour);
|
||||||
|
|
||||||
ALTER TABLE est_en_position ADD FOREIGN KEY (idcarte) REFERENCES carte (idcarte);
|
|
||||||
|
|
||||||
ALTER TABLE est_en_position ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur);
|
ALTER TABLE est_en_position ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur);
|
||||||
|
|
||||||
ALTER TABLE est_lie_a ADD FOREIGN KEY (idclassement_composante) REFERENCES classement (idclassement);
|
ALTER TABLE est_lie_a ADD FOREIGN KEY (idclassement_composante) REFERENCES classement (idclassement);
|
||||||
|
|||||||
@@ -1,19 +1,15 @@
|
|||||||
<!-- Bloc entête -->
|
<!-- Bloc entête -->
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
<div class="header_logo">
|
<div class="header_logo">
|
||||||
|
|
||||||
<a href="./index.php">
|
<a href="./index.php">
|
||||||
<img src="img/deezcyclelogo.png" alt="BD" />
|
<img src="img/deezcyclelogo.png" alt="BD" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header_titre">
|
<div id="demotext" class="header_titre">
|
||||||
|
|
||||||
<h1>DeezCycle</h1>
|
<h1>DeezCycle</h1>
|
||||||
<h2>Jeu de dés</h2>
|
<h2>Jeu de dés</h2>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</header>
|
</header>
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
<main>
|
<main>
|
||||||
|
|
||||||
<p>
|
|
||||||
<h3>Bienvenue dans DeezCycle!</h3>
|
<h3>Bienvenue dans DeezCycle!</h3>
|
||||||
|
|
||||||
Découvrez un jeu de dés stratégique où vous incarnez un cycliste tentant de franchir la ligne d'arrivée en premier
|
Découvrez un jeu de dés stratégique où vous incarnez un cycliste tentant de franchir la ligne d'arrivée en premier
|
||||||
@@ -30,6 +29,4 @@
|
|||||||
Prêt à relever le défi? Rejoignez dès maintenant DeezCycle et montrez vos compétences de cycliste. Le parcours
|
Prêt à relever le défi? Rejoignez dès maintenant DeezCycle et montrez vos compétences de cycliste. Le parcours
|
||||||
vous attend!
|
vous attend!
|
||||||
|
|
||||||
Peux-tu m'ajouter cette description avec les bonnes balises etc ?</p>
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Classe des couleurs exactes des pions (images fournies) pour les assigner au joueur
|
||||||
|
/* pour qu'il sache quelle couleur de pion il a
|
||||||
|
/***********************************/
|
||||||
class CouleurPion
|
class CouleurPion
|
||||||
{
|
{
|
||||||
public $couleurs = [
|
public $couleurs = [
|
||||||
@@ -14,7 +18,9 @@ class CouleurPion
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Pour la création de la partie, fonction permettant de choisir les cartes du plateau */
|
||||||
|
/***********************************/
|
||||||
function champs_cartes($nom, $titre)
|
function champs_cartes($nom, $titre)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -43,15 +49,18 @@ function champs_cartes($nom, $titre)
|
|||||||
return (int) 0;
|
return (int) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Formulaire de saisie des cartes du plateau */
|
||||||
|
/***********************************/
|
||||||
function afficher_formulaire()
|
function afficher_formulaire()
|
||||||
{
|
{
|
||||||
$total = 0;
|
$total = 0;
|
||||||
|
|
||||||
echo '<form class="formulaire_partie" method="post" action="#">';
|
echo '<form class="formulaire_partie" method="post" action="#">';
|
||||||
|
|
||||||
$total += champs_cartes('nbCartesVertes', 'Nombre de cartes vertes');
|
$total += champs_cartes('nbCartesVertes', ' Nombre de cartes vertes');
|
||||||
$total += champs_cartes('nbCartesOranges', 'Nombre de cartes oranges');
|
$total += champs_cartes('nbCartesOranges', ' Nombre de cartes oranges');
|
||||||
$total += champs_cartes('nbCartesNoires', 'Nombre de cartes noires');
|
$total += champs_cartes('nbCartesNoires', ' Nombre de cartes noires');
|
||||||
|
|
||||||
|
|
||||||
if ($total > 0) {
|
if ($total > 0) {
|
||||||
@@ -67,10 +76,14 @@ function afficher_formulaire()
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Afficher les joueurs lors de la création de la partie avec leur nom en couleur en adéquation
|
||||||
|
/* avec la couleur de leur pion
|
||||||
|
/***********************************/
|
||||||
function afficher_joueurs(int $idpartie)
|
function afficher_joueurs(int $idpartie)
|
||||||
{
|
{
|
||||||
$joueurs = getJoueursPartie($idpartie);
|
$joueurs = getJoueursPartie($idpartie);
|
||||||
echo '<div>';
|
echo '<div class="joueurs">';
|
||||||
echo '<p>Joueurs : </p>';
|
echo '<p>Joueurs : </p>';
|
||||||
for ($i = 0; $i < count($joueurs); $i++) {
|
for ($i = 0; $i < count($joueurs); $i++) {
|
||||||
$joueur = $joueurs[$i];
|
$joueur = $joueurs[$i];
|
||||||
@@ -80,6 +93,10 @@ function afficher_joueurs(int $idpartie)
|
|||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Formulaire d'ajouts de joueurs lors de la création d'une partie, il ne faut pas sélectionner deux fois le même joueur
|
||||||
|
/* Pas plus de 8 joueurs par partie
|
||||||
|
/***********************************/
|
||||||
function formulaire_ajout_joueurs(int $idpartie)
|
function formulaire_ajout_joueurs(int $idpartie)
|
||||||
{
|
{
|
||||||
$joueursPartie = getJoueursPartie($idpartie);
|
$joueursPartie = getJoueursPartie($idpartie);
|
||||||
@@ -99,6 +116,9 @@ function formulaire_ajout_joueurs(int $idpartie)
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Formulaire permettant d'exclure un joueur lors de la création d'une partie */
|
||||||
|
/***********************************/
|
||||||
function formulaire_suppression_joueurs(int $idpartie)
|
function formulaire_suppression_joueurs(int $idpartie)
|
||||||
{
|
{
|
||||||
$joueurs = getJoueursPartie($idpartie);
|
$joueurs = getJoueursPartie($idpartie);
|
||||||
@@ -116,6 +136,9 @@ function formulaire_suppression_joueurs(int $idpartie)
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Formulaire pour choisir la stratégie de la partie */
|
||||||
|
/***********************************/
|
||||||
function formulaire_ordre_joueurs(int $idpartie)
|
function formulaire_ordre_joueurs(int $idpartie)
|
||||||
{
|
{
|
||||||
echo '<form class="enlever_joueurs_partie" method="post" action="#">';
|
echo '<form class="enlever_joueurs_partie" method="post" action="#">';
|
||||||
@@ -169,7 +192,12 @@ function formulaire_ordre_joueurs(int $idpartie)
|
|||||||
} else if (isset($_POST['validerOrdre'])) {
|
} else if (isset($_POST['validerOrdre'])) {
|
||||||
$idpartie = (int) $_POST['idpartie'];
|
$idpartie = (int) $_POST['idpartie'];
|
||||||
valider_partie($_POST['idpartie'], $_POST['ordre']);
|
valider_partie($_POST['idpartie'], $_POST['ordre']);
|
||||||
echo '<a href="index.php?page=jouerPartie&idpartie=' . $idpartie . '">Jouer la partie</a>';
|
|
||||||
|
echo '<h1>Partie n°' . $idpartie . ' prête à être jouée</h1>';
|
||||||
|
echo '<div id="demotext">';
|
||||||
|
echo '<h2> Cliquer sur le lien ci-dessous pour jouer la partie !</h2>';
|
||||||
|
echo '</div>';
|
||||||
|
echo '<a href="index.php?page=jouerPartie&idpartie=' . $idpartie . '">Partie n°' . $idpartie . '</a>';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
afficher_formulaire();
|
afficher_formulaire();
|
||||||
|
|||||||
@@ -1,8 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/***********************************/
|
||||||
|
/* Pour le lien hypertexte fonctionnalité 1 */
|
||||||
|
/***********************************/
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Afficher le triplet de cartes pour une partie finie */
|
||||||
|
/***********************************/
|
||||||
function afficherTriplets(int $idplateau)
|
function afficherTriplets(int $idplateau)
|
||||||
{
|
{
|
||||||
$triplets = get_triplet_cartes($idplateau);
|
$triplets = get_triplet_cartes($idplateau);
|
||||||
echo '<div id="triplets">';
|
echo '<div class="en_ligne_suite" id="triplets">';
|
||||||
echo '</br>';
|
echo '</br>';
|
||||||
echo '<p>Cartes:</p>';
|
echo '<p>Cartes:</p>';
|
||||||
echo '<p>Cartes vertes: ' . $triplets['nb_verte'] . '</p>';
|
echo '<p>Cartes vertes: ' . $triplets['nb_verte'] . '</p>';
|
||||||
@@ -11,35 +19,29 @@ function afficherTriplets(int $idplateau)
|
|||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Afficher le rang et le pseudo des joueurs de la partie */
|
||||||
|
/***********************************/
|
||||||
function afficherRangPseudo(int $idpartie)
|
function afficherRangPseudo(int $idpartie)
|
||||||
{
|
{
|
||||||
$rang = get_rang($idpartie);
|
$rang = get_rang($idpartie);
|
||||||
$pseudo = get_pseudos($idpartie);
|
$pseudo = get_pseudos($idpartie);
|
||||||
echo '<div id="rangPseudo">';
|
echo '<div class="en_ligne_suite" id="Joueurs">';
|
||||||
echo '</br>';
|
echo '</br>';
|
||||||
echo '<p>Joueurs:</p>';
|
echo '<p>Joueurs:</p>';
|
||||||
foreach ($pseudo as $p){
|
foreach ($pseudo as $p) {
|
||||||
echo '<p>Pseudo: ' . $p['pseudo'] . '</p>';
|
echo '<p>Pseudo: ' . $p['pseudo'] . '</p>';
|
||||||
}
|
}
|
||||||
echo '</br>';
|
echo '</div>';
|
||||||
|
echo '<div class="en_ligne_suite" id="Classement">';
|
||||||
echo '<p>Classement:</p>';
|
echo '<p>Classement:</p>';
|
||||||
foreach ($rang as $r){
|
foreach ($rang as $r) {
|
||||||
echo '<p>Pseudo: ' . $r['pseudo'] . '</p>';
|
echo '<p>Pseudo: ' . $r['pseudo'] . '</p>';
|
||||||
echo '<p>Rang: ' . $r['rang'] . '</p>';
|
echo '<p>Rang: ' . $r['rang'] . '</p>';
|
||||||
|
|
||||||
}
|
}
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
function afficherPseudo(int $idpartie)
|
|
||||||
{
|
|
||||||
$pseudo = get_pseudos($idpartie);
|
|
||||||
echo '<div id="pseudo">';
|
|
||||||
foreach ($pseudo as $p){
|
|
||||||
echo '<p>Pseudo: ' . $p['pseudo'] . '</p>';
|
|
||||||
}
|
|
||||||
echo '</div>';
|
|
||||||
}
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="panneau_details_2">
|
<div class="panneau_details_2">
|
||||||
@@ -51,7 +53,7 @@ function afficherPseudo(int $idpartie)
|
|||||||
<tbody>
|
<tbody>
|
||||||
<?php
|
<?php
|
||||||
$donnees = ['idpartie', 'date_partie', 'horaire', 'taille'];
|
$donnees = ['idpartie', 'date_partie', 'horaire', 'taille'];
|
||||||
echo '<div id="partieDetails">';
|
echo '<div class="en_ligne" id="partieDetails">';
|
||||||
foreach ($donnees as $donnee) {
|
foreach ($donnees as $donnee) {
|
||||||
if (isset($_GET[$donnee])) {
|
if (isset($_GET[$donnee])) {
|
||||||
echo '<p>' . $donnee . ': ' . $_GET[$donnee] . '</p>';
|
echo '<p>' . $donnee . ': ' . $_GET[$donnee] . '</p>';
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Classe des couleurs exactes des pions (images fournies) pour les assigner au joueur
|
||||||
|
/* pour qu'il sache quelle couleur de pion il a
|
||||||
|
/***********************************/
|
||||||
class CouleurPion
|
class CouleurPion
|
||||||
{
|
{
|
||||||
public $couleurs = [
|
public $couleurs = [
|
||||||
@@ -12,6 +18,11 @@ class CouleurPion
|
|||||||
'ff0000'
|
'ff0000'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Affichage des pions des joueurs lors du déroulé de la partie*/
|
||||||
|
/***********************************/
|
||||||
function afficher_pions($joueurs)
|
function afficher_pions($joueurs)
|
||||||
{
|
{
|
||||||
foreach ($joueurs as $joueur) {
|
foreach ($joueurs as $joueur) {
|
||||||
@@ -19,19 +30,25 @@ function afficher_pions($joueurs)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Affichage des joueurs lors du déroulé de la partie */
|
||||||
|
/***********************************/
|
||||||
function afficher_joueurs(int $idpartie)
|
function afficher_joueurs(int $idpartie)
|
||||||
{
|
{
|
||||||
$joueurs = getJoueursPartie($idpartie);
|
$joueurs = getJoueursPartie($idpartie);
|
||||||
echo '<div>';
|
echo '<div class="joueurs">';
|
||||||
echo '<p>Joueurs : </p>';
|
echo '<p>Joueurs : </p>';
|
||||||
for ($i = 0; $i < count($joueurs); $i++) {
|
for ($i = 0; $i < count($joueurs); $i++) {
|
||||||
$joueur = $joueurs[$i];
|
$joueur = $joueurs[$i];
|
||||||
$couleur_hex = (new CouleurPion())->couleurs[$i];
|
$couleur_hex = (new CouleurPion())->couleurs[$i];
|
||||||
echo '<p style="color:#' . $couleur_hex . ';">' . $joueur['pseudo'] . " (" . $joueur['prenom'] . " " . $joueur['nom'] . ')</p>';
|
echo '<p class="joueur" style="color:#' . $couleur_hex . ';">' . $joueur['pseudo'] . " (" . $joueur['prenom'] . " " . $joueur['nom'] . ')</p>';
|
||||||
}
|
}
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Affichage d'une carte du plateau*/
|
||||||
|
/***********************************/
|
||||||
function afficherCarte(string $nomcarte, int $numero, $joueurs): void
|
function afficherCarte(string $nomcarte, int $numero, $joueurs): void
|
||||||
{
|
{
|
||||||
echo '<div class="unecarte">';
|
echo '<div class="unecarte">';
|
||||||
@@ -45,21 +62,30 @@ function afficherCarte(string $nomcarte, int $numero, $joueurs): void
|
|||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Affichage de la carte de départ*/
|
||||||
|
/***********************************/
|
||||||
function afficher_depart($joueurs): void
|
function afficher_depart($joueurs): void
|
||||||
{
|
{
|
||||||
afficherCarte("carteDépart.png", 0, $joueurs);
|
afficherCarte("carteDépart.png", 0, $joueurs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Affichage la carte d'arrivée */
|
||||||
|
/***********************************/
|
||||||
function afficher_arrivee(): void
|
function afficher_arrivee(): void
|
||||||
{
|
{
|
||||||
afficherCarte("carteArrivée.png", 13, []);
|
afficherCarte("carteArrivée.png", 13, []);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Affichage de toutes les cartes du plateau */
|
||||||
|
/***********************************/
|
||||||
function afficherCartes(int $idpartie, int $tour): void
|
function afficherCartes(int $idpartie, int $tour): void
|
||||||
{
|
{
|
||||||
$cartes = getCards($idpartie);
|
$cartes = getCards($idpartie);
|
||||||
|
|
||||||
echo '<div>';
|
echo '<div class="plateau">';
|
||||||
if ($tour == 0) {
|
if ($tour == 0) {
|
||||||
afficher_depart(getJoueursPartie($idpartie));
|
afficher_depart(getJoueursPartie($idpartie));
|
||||||
for ($i = 0; $i < sizeof($cartes); $i++) {
|
for ($i = 0; $i < sizeof($cartes); $i++) {
|
||||||
@@ -68,13 +94,16 @@ function afficherCartes(int $idpartie, int $tour): void
|
|||||||
} else {
|
} else {
|
||||||
afficher_depart(getJoueursPosition($idpartie, $tour, 0));
|
afficher_depart(getJoueursPosition($idpartie, $tour, 0));
|
||||||
for ($i = 0; $i < sizeof($cartes); $i++) {
|
for ($i = 0; $i < sizeof($cartes); $i++) {
|
||||||
afficherCarte($cartes[$i]['img'], $i + 1, []);
|
afficherCarte($cartes[$i]['img'], $i + 1, getJoueursPosition($idpartie, $tour, $i + 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
afficher_arrivee();
|
afficher_arrivee();
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Formulaire de sélection de la partie à jouer */
|
||||||
|
/***********************************/
|
||||||
function formulaire_selection_partie()
|
function formulaire_selection_partie()
|
||||||
{
|
{
|
||||||
$parties = get_parties_id();
|
$parties = get_parties_id();
|
||||||
@@ -88,6 +117,9 @@ function formulaire_selection_partie()
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/* Formulaire pour lancer la partie */
|
||||||
|
/***********************************/
|
||||||
function formulaire_lancer_partie(int $idpartie)
|
function formulaire_lancer_partie(int $idpartie)
|
||||||
{
|
{
|
||||||
echo '<form class="lancer_partie" method="post" action="#">';
|
echo '<form class="lancer_partie" method="post" action="#">';
|
||||||
@@ -96,6 +128,20 @@ function formulaire_lancer_partie(int $idpartie)
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function afficher_des($des)
|
||||||
|
{
|
||||||
|
if (empty($des))
|
||||||
|
return;
|
||||||
|
|
||||||
|
echo '<div class="des">';
|
||||||
|
foreach ($des as $nom => $valeurs) {
|
||||||
|
foreach ($valeurs as $valeur) {
|
||||||
|
echo '<img src="img/des/de' . $nom . $valeur . '.png" alt="' . $nom . $valeur . '" width="50"/>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
function formulaire_selection_des_main(int $idpartie)
|
function formulaire_selection_des_main(int $idpartie)
|
||||||
{
|
{
|
||||||
echo '<form action="#" method="post">
|
echo '<form action="#" method="post">
|
||||||
@@ -111,7 +157,7 @@ function formulaire_selection_des_main(int $idpartie)
|
|||||||
<label for="desRouges">Nombre de dés rouges :</label>
|
<label for="desRouges">Nombre de dés rouges :</label>
|
||||||
<input type="number" id="desRouges" name="desRouges">
|
<input type="number" id="desRouges" name="desRouges">
|
||||||
</div>
|
</div>
|
||||||
<input type="submit" value="Enregistrer la main">
|
<input type="submit" name="lancerDes" value="Enregistrer la main">
|
||||||
<input type="hidden" name="idpartie" value="' . $idpartie . '"/>
|
<input type="hidden" name="idpartie" value="' . $idpartie . '"/>
|
||||||
</form>';
|
</form>';
|
||||||
}
|
}
|
||||||
@@ -122,8 +168,6 @@ function formulaire_selection_des_main(int $idpartie)
|
|||||||
<div class="panneau_details_3">
|
<div class="panneau_details_3">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h2>Jouer une partie</h2>
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$idpartie = -1;
|
$idpartie = -1;
|
||||||
@@ -142,14 +186,24 @@ function formulaire_selection_des_main(int $idpartie)
|
|||||||
if (isset($_POST['lancerPartie'])) {
|
if (isset($_POST['lancerPartie'])) {
|
||||||
lancer_partie($idpartie);
|
lancer_partie($idpartie);
|
||||||
}
|
}
|
||||||
|
$des = [];
|
||||||
|
if (isset($_POST['lancerDes'])) {
|
||||||
|
$des = lancer_les_des($idpartie, (int) $_POST['desBleus'], (int) $_POST['desJaunes'], (int) $_POST['desRouges']);
|
||||||
|
if (empty($des)) {
|
||||||
|
echo 'Tu sais pas compter ?';
|
||||||
|
}
|
||||||
|
}
|
||||||
afficher_joueurs($idpartie);
|
afficher_joueurs($idpartie);
|
||||||
afficherCartes($idpartie, get_parties_tour($idpartie));
|
afficherCartes($idpartie, get_partie_tour($idpartie));
|
||||||
|
afficher_des($des);
|
||||||
if (partie_est_a_venir($idpartie)) {
|
if (partie_est_a_venir($idpartie)) {
|
||||||
formulaire_lancer_partie($idpartie);
|
formulaire_lancer_partie($idpartie);
|
||||||
} else {
|
} else {
|
||||||
|
echo 'Tour de ' . get_joueur_actuel($idpartie)['pseudo'] . ' Lancers restants : ' . get_lancers_restants($idpartie);
|
||||||
formulaire_selection_des_main($idpartie);
|
formulaire_selection_des_main($idpartie);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
<h2>Affichage des parties</h2>
|
<h2>Affichage des parties</h2>
|
||||||
|
|
||||||
|
|
||||||
<form class="bloc_commandes" method="post" action="#">
|
<form class="bloc_commandes_sans_flex" method="post" action="#">
|
||||||
|
|
||||||
<label for="boutonAfficher">Voir Parties</label>
|
|
||||||
<?php
|
<?php
|
||||||
$selection = 1;
|
$selection = 1;
|
||||||
if (isset($_POST['selectparty'])) {
|
if (isset($_POST['selectparty'])) {
|
||||||
$selection = (int) $_POST["selectparty"];
|
$selection = (int) $_POST["selectparty"];
|
||||||
}
|
}
|
||||||
|
echo '<label for="boutonAfficher">Voir Parties</label>';
|
||||||
echo '<select id="selectpartie" name="selectparty">';
|
echo '<select id="selectpartie" name="selectparty">';
|
||||||
for ($i = 1; $i <= 50; $i++) {
|
for ($i = 1; $i <= 50; $i++) {
|
||||||
echo '<option value="' . $i . '"';
|
echo '<option value="' . $i . '"';
|
||||||
@@ -23,8 +23,12 @@
|
|||||||
?>
|
?>
|
||||||
|
|
||||||
<input type="submit" name="boutonAfficher" value="Afficher" />
|
<input type="submit" name="boutonAfficher" value="Afficher" />
|
||||||
<input type="submit" name="boutonAfficherAVenir" value="A venir" />
|
</br>
|
||||||
<input type="submit" name="boutonAfficherEnCours" value="En cours" />
|
<input class="grand_input" type="submit" name="boutonAfficherAVenir"
|
||||||
|
value="Cliquez ici pour afficher les parties à venir" />
|
||||||
|
<input class="grand_input" type="submit" name="boutonAfficherEnCours"
|
||||||
|
value="Cliquez ici pour afficher les parties en cours" />
|
||||||
|
</br>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php
|
<?php
|
||||||
@@ -39,8 +43,9 @@
|
|||||||
$url .= 'taille=12';
|
$url .= 'taille=12';
|
||||||
|
|
||||||
echo '<a href="' . $url . '" target="_blank">' . "Afficher les détails de la partie" . '</a>';
|
echo '<a href="' . $url . '" target="_blank">' . "Afficher les détails de la partie" . '</a>';
|
||||||
} else {
|
}
|
||||||
echo "<h1>Selectionnez une partie !</h1>";
|
if (!isset($_POST['boutonAfficherAVenir']) && !isset($_POST['boutonAfficherEnCours']) && !isset($_POST['boutonAfficherPartiesTerminees']) && !isset($_POST['boutonAfficher'])) {
|
||||||
|
echo '<h2>Choisissez une option pour afficher les parties</h2>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<?php if ($message != "") { ?>
|
<?php if ($message != "") { ?>
|
||||||
@@ -119,7 +124,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<form class="bloc_commandes" method="post" action="#">
|
<form class="bloc_commandes_sans_flex" method="post" action="#">
|
||||||
<label>Rechercher une partie terminée</label>
|
<label>Rechercher une partie terminée</label>
|
||||||
<select id="selectpartieterminee" name="selectpartyterminee">
|
<select id="selectpartieterminee" name="selectpartyterminee">
|
||||||
<option value="toutes">Toutes les parties terminées</option>
|
<option value="toutes">Toutes les parties terminées</option>
|
||||||
|
|||||||
@@ -45,20 +45,37 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h4>les phases de tournoi (nom et année de tournoi, niveau de phase) jouées et pour lesquelles s’est qualifié
|
<h4>Les phases de tournoi (nom et année de tournoi, niveau de phase) jouées et pour lesquelles s’est qualifié
|
||||||
l’utilisateur courant. Le résultat sera trié sur les années selon l’ordre antéchronologique puis sur les
|
l’utilisateur choisi. Le résultat sera trié sur les années selon l’ordre antéchronologique puis sur les
|
||||||
niveaux de phase selon l’ordre lexicographique inverse</h4>
|
niveaux de phase selon l’ordre lexicographique inverse</h4>
|
||||||
|
<form class="joueur" method="post">
|
||||||
|
<label for="joueur">Choisir un joueur :</label>
|
||||||
|
<select name="idjoueur" id="joueur">
|
||||||
|
<?php
|
||||||
|
$joueurs = get_joueurs();
|
||||||
|
foreach ($joueurs as $joueur) {
|
||||||
|
echo '<option value="' . $joueur['idjoueur'] . '">' . $joueur['pseudo'] . '</option>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
<input type="submit" name="afficherQualifs" value="Afficher les qualifications" />
|
||||||
|
</form>
|
||||||
|
|
||||||
<table class="table_resultat">
|
<table class="table_resultat">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<?php
|
<?php
|
||||||
|
$id = null;
|
||||||
|
$qualifs = null;
|
||||||
|
if (isset($_POST['afficherQualifs'])) {
|
||||||
|
$id = $_POST['idjoueur'];
|
||||||
|
$qualifs = get_joueurs_qualifs($id);
|
||||||
//var_dump($resultats);
|
//var_dump($resultats);
|
||||||
foreach ($qualif_joueurs['schema'] as $att) { // pour parcourir les attributs
|
foreach ($qualifs['schema'] as $att) { // pour parcourir les attributs
|
||||||
|
|
||||||
echo '<th>';
|
echo '<th>';
|
||||||
echo $att['nom'];
|
echo $att['nom'];
|
||||||
echo '</th>';
|
echo '</th>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -66,18 +83,25 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
foreach ($qualif_joueurs['instances'] as $row) { // pour parcourir les n-uplets
|
if ($qualifs !== null) {
|
||||||
|
if (empty($qualifs['instances'])) {
|
||||||
|
echo '<tr><td colspan="' . count($qualifs['schema']) . '">Aucune qualification trouvée</td></tr>';
|
||||||
|
} else {
|
||||||
|
foreach ($qualifs['instances'] as $row) { // pour parcourir les n-uplets
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
|
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
|
||||||
echo '<td>' . $valeur . '</td>';
|
echo '<td>' . $valeur . '</td>';
|
||||||
}
|
}
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
<h4>Le nombre d’équipes classées premières des classements et dont aucun des membres n’est premier dans un
|
<h4>Le nombre d’équipes classées premières des classements et dont aucun des membres n’est premier dans un
|
||||||
classement individuel</h4>
|
classement individuel</h4>
|
||||||
<table class="table_resultat">
|
<table class="table_resultat">
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
<h2>Détails d'une table</h2>
|
<h2>Détails d'une table</h2>
|
||||||
|
|
||||||
|
|
||||||
<form class="bloc_commandes" method="post" action="#">
|
<form class="bloc_commandes_sans_flex" method="post" action="#">
|
||||||
|
|
||||||
<label for="typeVueTable">Voir</label>
|
<label for="typeVueTable">Voir</label>
|
||||||
<select name="typeVue" id="typeVue">
|
<select name="typeVue" id="typeVue">
|
||||||
|
|||||||