Compare commits

2 Commits
cool ... main

Author SHA1 Message Date
d98d9eaa69 Squashed commit of the following:
commit 1749366a26
Author: Persson-dev <sim16.prib@gmail.com>
Date:   Thu Apr 18 23:39:16 2024 +0200

    les dés

commit d3f06fae1a
Author: Persson-dev <sim16.prib@gmail.com>
Date:   Thu Apr 18 23:39:07 2024 +0200

    je sais plus quoi dire
2024-04-18 23:48:09 +02:00
922e7ecbae Update form class in tables_vue.php, header.php, accueil_vue.php, parties_controleur.php, modele.php, statistiques_controleur.php, and parties_vue.php 2024-04-18 23:41:03 +02:00
32 changed files with 724 additions and 85 deletions

View File

@@ -1,24 +1,324 @@
<?php
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)
{
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'];
}
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 = " .
$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 = "
. $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;
}
@@ -42,8 +342,105 @@ function get_parties_id()
return $ids;
}
function lancer_partie(int $idpartie) {
executer_une_requete("UPDATE partie SET etat = 'en cours' WHERE idpartie = " . $idpartie);
function placer_joueur(int $idjoueur, int $idpartie, int $tour, int $pos)
{
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;
}
?>

View File

@@ -2,6 +2,10 @@
$message = "";
/***********************************/
/* Récupération des parties en cours */
/***********************************/
$partiestotal = get_parties_venir_cours();
if ($partiestotal == null || count($partiestotal) == 0) {
@@ -16,6 +20,10 @@ if ($partiestotal == null || count($partiestotal) == 0) {
$messageterminee = "";
/***********************************/
/* Récupération des parties terminées */
/***********************************/
$partiesterm = get_parties_terminees();
if ($partiesterm == null || count($partiesterm) == 0) {

View File

@@ -1,10 +1,17 @@
<?php
$message = "";
// recupération de la liste des tables
/***********************************/
/* Récupération des 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
FROM participe Pa
JOIN phase Ph USING(idtournoi, niveau)
@@ -18,12 +25,16 @@ if ($stats == null || count($stats) == 0) {
$message .= "Aucune statistique n'est disponible!";
} else {
/***********************************/
/* Instances des vues des statistiques */
/***********************************/
$stat_globales = get_infos_instances('stat_globales');
$equipes_top_1 = get_infos_instances('equipes_top_1');
$participants_tournois_recents = get_infos_instances('participants_tournois_recents');
$joueurs_au_moins_deux_top_5 = get_infos_instances('joueurs_au_moins_deux_top_5');
$tailles_plateaux = get_infos_instances('tailles_plateaux');
$top_5_joueurs_parties_jouees = get_infos_instances('top_5_joueurs_parties_jouees');
$qualif_joueurs = get_joueurs_qualifs(1);
}
?>

View File

@@ -8,14 +8,17 @@ nav,
main,
footer {
padding: 1em 0;
border-radius: 1em;
margin-top: 1em;
}
header {
display: flex;
justify-content: flex-start;
background-color: white;
background-color: lightgrey;
color: black;
text-align: center;
border-radius: 2em;
}
.header_titre {
@@ -35,7 +38,7 @@ header {
display: flex;
justify-content: space-between;
margin: auto;
border: 4px solid gray;
border: 4px solid darkgreen;
border-radius: 1em;
box-sizing: border-box;
height: 100%;
@@ -43,16 +46,40 @@ header {
nav {
display: flex;
justify-content: space-around;
background-color: gray;
justify-content: space-evenly;
background-color: white;
padding-left: 1em;
padding-right: 1em;
line-height: 2em;
border-radius: 1em;
margin: inherit;
}
main {
background-color: lightgrey;
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 {
@@ -68,6 +95,13 @@ footer {
background-color: white;
}
input {
width: 10%;
padding: 10px;
margin: 15px;
border-radius: 1em;
}
.notification {
background-color: #ffffe6;
margin: 1em;
@@ -88,7 +122,8 @@ footer {
}
.panneau_details {
display: flex;
display: flex-root;
flex-direction: column;
justify-content: center;
width: 100%;
overflow-y: auto;
@@ -112,7 +147,22 @@ footer {
.unecarte {
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 {
@@ -147,6 +197,11 @@ footer {
background-color: white;
}
select {
margin: 1em;
padding: 1em;
}
.bloc_commandes {
display: flex;
flex-direction: column;
@@ -177,3 +232,60 @@ footer {
.bloc_commandes>select:hover {
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
img/des/deB2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
img/des/deB3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
img/des/deB4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
img/des/deB5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
img/des/deB6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
img/des/deJ1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
img/des/deJ2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
img/des/deJ3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
img/des/deJ4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
img/des/deJ5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
img/des/deJ6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
img/des/deR1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
img/des/deR2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
img/des/deR3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
img/des/deR4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
img/des/deR5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
img/des/deR6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@@ -95,6 +95,9 @@ function get_statistiques()
];
}
/***********************************/
/* Récupération des parties à venir et des parties en cours */
/***********************************/
function get_parties_venir_cours()
{
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()
{
global $connexion;
@@ -312,7 +318,9 @@ function executer_une_requete(string $requete)
/***********************************/
/* fonction de débug */
/***********************************/
function debug_log(string $msg)
{

View File

@@ -118,9 +118,8 @@ CREATE TABLE
CREATE TABLE
est_en_position (
PRIMARY KEY (idjoueur, idcarte, idpartie, num_tour),
PRIMARY KEY (idjoueur, idpartie, num_tour),
idjoueur INTEGER NOT NULL,
idcarte INTEGER NOT NULL,
idpartie INTEGER NOT NULL,
num_tour INTEGER NOT NULL,
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 (idcarte) REFERENCES carte (idcarte);
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);

View File

@@ -1,19 +1,15 @@
<!-- Bloc entête -->
<header>
<div class="header_logo">
<a href="./index.php">
<img src="img/deezcyclelogo.png" alt="BD" />
</a>
</div>
<div class="header_titre">
<div id="demotext" class="header_titre">
<h1>DeezCycle</h1>
<h2>Jeu de dés</h2>
</div>
</header>

View File

@@ -1,6 +1,5 @@
<main>
<p>
<h3>Bienvenue dans DeezCycle!</h3>
Découvrez un jeu de dés stratégique 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
vous attend!
Peux-tu m'ajouter cette description avec les bonnes balises etc ?</p>
</main>

View File

@@ -1,5 +1,9 @@
<?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
{
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)
{
@@ -43,15 +49,18 @@ function champs_cartes($nom, $titre)
return (int) 0;
}
/***********************************/
/* Formulaire de saisie des cartes du plateau */
/***********************************/
function afficher_formulaire()
{
$total = 0;
echo '<form class="formulaire_partie" method="post" action="#">';
$total += champs_cartes('nbCartesVertes', 'Nombre de cartes vertes');
$total += champs_cartes('nbCartesOranges', 'Nombre de cartes oranges');
$total += champs_cartes('nbCartesNoires', 'Nombre de cartes noires');
$total += champs_cartes('nbCartesVertes', ' Nombre de cartes vertes');
$total += champs_cartes('nbCartesOranges', ' Nombre de cartes oranges');
$total += champs_cartes('nbCartesNoires', ' Nombre de cartes noires');
if ($total > 0) {
@@ -67,10 +76,14 @@ function afficher_formulaire()
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)
{
$joueurs = getJoueursPartie($idpartie);
echo '<div>';
echo '<div class="joueurs">';
echo '<p>Joueurs : </p>';
for ($i = 0; $i < count($joueurs); $i++) {
$joueur = $joueurs[$i];
@@ -80,6 +93,10 @@ function afficher_joueurs(int $idpartie)
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)
{
$joueursPartie = getJoueursPartie($idpartie);
@@ -99,6 +116,9 @@ function formulaire_ajout_joueurs(int $idpartie)
echo '</form>';
}
/***********************************/
/* Formulaire permettant d'exclure un joueur lors de la création d'une partie */
/***********************************/
function formulaire_suppression_joueurs(int $idpartie)
{
$joueurs = getJoueursPartie($idpartie);
@@ -116,6 +136,9 @@ function formulaire_suppression_joueurs(int $idpartie)
echo '</form>';
}
/***********************************/
/* Formulaire pour choisir la stratégie de la partie */
/***********************************/
function formulaire_ordre_joueurs(int $idpartie)
{
echo '<form class="enlever_joueurs_partie" method="post" action="#">';
@@ -169,7 +192,12 @@ function formulaire_ordre_joueurs(int $idpartie)
} else if (isset($_POST['validerOrdre'])) {
$idpartie = (int) $_POST['idpartie'];
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 {
afficher_formulaire();

View File

@@ -1,8 +1,16 @@
<?php
/***********************************/
/* Pour le lien hypertexte fonctionnalité 1 */
/***********************************/
/***********************************/
/* Afficher le triplet de cartes pour une partie finie */
/***********************************/
function afficherTriplets(int $idplateau)
{
$triplets = get_triplet_cartes($idplateau);
echo '<div id="triplets">';
echo '<div class="en_ligne_suite" id="triplets">';
echo '</br>';
echo '<p>Cartes:</p>';
echo '<p>Cartes vertes: ' . $triplets['nb_verte'] . '</p>';
@@ -11,35 +19,29 @@ function afficherTriplets(int $idplateau)
echo '</div>';
}
/***********************************/
/* Afficher le rang et le pseudo des joueurs de la partie */
/***********************************/
function afficherRangPseudo(int $idpartie)
{
$rang = get_rang($idpartie);
$pseudo = get_pseudos($idpartie);
echo '<div id="rangPseudo">';
echo '<div class="en_ligne_suite" id="Joueurs">';
echo '</br>';
echo '<p>Joueurs:</p>';
foreach ($pseudo as $p){
foreach ($pseudo as $p) {
echo '<p>Pseudo: ' . $p['pseudo'] . '</p>';
}
echo '</br>';
echo '</div>';
echo '<div class="en_ligne_suite" id="Classement">';
echo '<p>Classement:</p>';
foreach ($rang as $r){
foreach ($rang as $r) {
echo '<p>Pseudo: ' . $r['pseudo'] . '</p>';
echo '<p>Rang: ' . $r['rang'] . '</p>';
}
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">
@@ -51,7 +53,7 @@ function afficherPseudo(int $idpartie)
<tbody>
<?php
$donnees = ['idpartie', 'date_partie', 'horaire', 'taille'];
echo '<div id="partieDetails">';
echo '<div class="en_ligne" id="partieDetails">';
foreach ($donnees as $donnee) {
if (isset($_GET[$donnee])) {
echo '<p>' . $donnee . ': ' . $_GET[$donnee] . '</p>';

View File

@@ -1,4 +1,10 @@
<?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
{
public $couleurs = [
@@ -12,6 +18,11 @@ class CouleurPion
'ff0000'
];
}
/***********************************/
/* Affichage des pions des joueurs lors du déroulé de la partie*/
/***********************************/
function afficher_pions($joueurs)
{
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)
{
$joueurs = getJoueursPartie($idpartie);
echo '<div>';
echo '<div class="joueurs">';
echo '<p>Joueurs : </p>';
for ($i = 0; $i < count($joueurs); $i++) {
$joueur = $joueurs[$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>';
}
/***********************************/
/* Affichage d'une carte du plateau*/
/***********************************/
function afficherCarte(string $nomcarte, int $numero, $joueurs): void
{
echo '<div class="unecarte">';
@@ -45,21 +62,30 @@ function afficherCarte(string $nomcarte, int $numero, $joueurs): void
echo '</div>';
}
/***********************************/
/* Affichage de la carte de départ*/
/***********************************/
function afficher_depart($joueurs): void
{
afficherCarte("carteDépart.png", 0, $joueurs);
}
/***********************************/
/* Affichage la carte d'arrivée */
/***********************************/
function afficher_arrivee(): void
{
afficherCarte("carteArrivée.png", 13, []);
}
/***********************************/
/* Affichage de toutes les cartes du plateau */
/***********************************/
function afficherCartes(int $idpartie, int $tour): void
{
$cartes = getCards($idpartie);
echo '<div>';
echo '<div class="plateau">';
if ($tour == 0) {
afficher_depart(getJoueursPartie($idpartie));
for ($i = 0; $i < sizeof($cartes); $i++) {
@@ -68,13 +94,16 @@ function afficherCartes(int $idpartie, int $tour): void
} else {
afficher_depart(getJoueursPosition($idpartie, $tour, 0));
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();
echo '</div>';
}
/***********************************/
/* Formulaire de sélection de la partie à jouer */
/***********************************/
function formulaire_selection_partie()
{
$parties = get_parties_id();
@@ -88,6 +117,9 @@ function formulaire_selection_partie()
echo '</form>';
}
/***********************************/
/* Formulaire pour lancer la partie */
/***********************************/
function formulaire_lancer_partie(int $idpartie)
{
echo '<form class="lancer_partie" method="post" action="#">';
@@ -96,6 +128,20 @@ function formulaire_lancer_partie(int $idpartie)
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)
{
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>
<input type="number" id="desRouges" name="desRouges">
</div>
<input type="submit" value="Enregistrer la main">
<input type="submit" name="lancerDes" value="Enregistrer la main">
<input type="hidden" name="idpartie" value="' . $idpartie . '"/>
</form>';
}
@@ -122,8 +168,6 @@ function formulaire_selection_des_main(int $idpartie)
<div class="panneau_details_3">
<div>
<h2>Jouer une partie</h2>
<?php
$idpartie = -1;
@@ -142,14 +186,24 @@ function formulaire_selection_des_main(int $idpartie)
if (isset($_POST['lancerPartie'])) {
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);
afficherCartes($idpartie, get_parties_tour($idpartie));
afficherCartes($idpartie, get_partie_tour($idpartie));
afficher_des($des);
if (partie_est_a_venir($idpartie)) {
formulaire_lancer_partie($idpartie);
} else {
echo 'Tour de ' . get_joueur_actuel($idpartie)['pseudo'] . ' Lancers restants : ' . get_lancers_restants($idpartie);
formulaire_selection_des_main($idpartie);
}
?>
</div>

View File

@@ -3,14 +3,14 @@
<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
$selection = 1;
if (isset($_POST['selectparty'])) {
$selection = (int) $_POST["selectparty"];
}
echo '<label for="boutonAfficher">Voir Parties</label>';
echo '<select id="selectpartie" name="selectparty">';
for ($i = 1; $i <= 50; $i++) {
echo '<option value="' . $i . '"';
@@ -23,8 +23,12 @@
?>
<input type="submit" name="boutonAfficher" value="Afficher" />
<input type="submit" name="boutonAfficherAVenir" value="A venir" />
<input type="submit" name="boutonAfficherEnCours" value="En cours" />
</br>
<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>
<?php
@@ -39,8 +43,9 @@
$url .= 'taille=12';
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 != "") { ?>
@@ -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>
<select id="selectpartieterminee" name="selectpartyterminee">
<option value="toutes">Toutes les parties terminées</option>

View File

@@ -45,20 +45,37 @@
</tbody>
</table>
<h4>les phases de tournoi (nom et année de tournoi, niveau de phase) jouées et pour lesquelles sest qualifié
lutilisateur courant. Le résultat sera trié sur les années selon lordre antéchronologique puis sur les
<h4>Les phases de tournoi (nom et année de tournoi, niveau de phase) jouées et pour lesquelles sest qualifié
lutilisateur choisi. Le résultat sera trié sur les années selon lordre antéchronologique puis sur les
niveaux de phase selon lordre 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">
<thead>
<tr>
<?php
//var_dump($resultats);
foreach ($qualif_joueurs['schema'] as $att) { // pour parcourir les attributs
echo '<th>';
echo $att['nom'];
echo '</th>';
$id = null;
$qualifs = null;
if (isset($_POST['afficherQualifs'])) {
$id = $_POST['idjoueur'];
$qualifs = get_joueurs_qualifs($id);
//var_dump($resultats);
foreach ($qualifs['schema'] as $att) { // pour parcourir les attributs
echo '<th>';
echo $att['nom'];
echo '</th>';
}
}
?>
</tr>
@@ -66,18 +83,25 @@
<tbody>
<?php
foreach ($qualif_joueurs['instances'] as $row) { // pour parcourir les n-uplets
echo '<tr>';
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
echo '<td>' . $valeur . '</td>';
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>';
foreach ($row as $valeur) { // pour parcourir chaque valeur de n-uplets
echo '<td>' . $valeur . '</td>';
}
echo '</tr>';
}
}
echo '</tr>';
}
?>
</tbody>
</table>
<h4>Le nombre déquipes classées premières des classements et dont aucun des membres nest premier dans un
classement individuel</h4>
<table class="table_resultat">

View File

@@ -41,7 +41,7 @@
<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>
<select name="typeVue" id="typeVue">