feat : Score management 🔥
continuous-integration/drone/push Build is passing Details

pull/35/head
Jade VAN BRABANDT 1 year ago
parent 6ac8e515ac
commit eba391d3d8

@ -88,6 +88,8 @@ class ControllerUser
function verifySingleplayer() function verifySingleplayer()
{ {
$_SESSION["Score"]=0;
$_SESSION["PrevTime"]= new DateTime('now');
$difficulty = $_POST['difficulty']; $difficulty = $_POST['difficulty'];
$chapter = $_POST['chapter']; $chapter = $_POST['chapter'];
$difficultyIsOk = TRUE; $difficultyIsOk = TRUE;
@ -121,25 +123,29 @@ class ControllerUser
function verifQuestion() function verifQuestion()
//Only Handdle solo game //Only Handdle solo game
{ {
$_SESSION["CurrTime"]= new DateTime('now');
$answerNumber = $_POST["answer"]; $answerNumber = $_POST["answer"];
$numQuestion = $_POST["numQuestion"] + 1; $numQuestion = $_POST["numQuestion"] + 1;
if ($answerNumber != 1 or $answerNumber != 2 or $answerNumber != 3 or $answerNumber != 4) { if (!($answerNumber == 0 or $answerNumber == 1 or $answerNumber == 2 or $answerNumber == 3)) {
$_SESSION["error"] = "Valeur de choix de réponse invalide"; $_SESSION["error"] = "Valeur de choix de réponse invalide";
echo $this->twig->render($this->vues["singleplayer"], [ echo $this->twig->render($this->vues["singleplayer"], [
'questions' => $_SESSION["Questions"], 'questions' => $_SESSION["Questions"],
'numQuestion' => $numQuestion, 'numQuestion' => $numQuestion-1,
]); ]);
} else { } else {
if ($numQuestion > 9) { if ($numQuestion > 9) {
echo $this->twig->render($this->vues["home"]); var_dump($_SESSION["Score"]);
//EN GROS IL FAUT AFFICHER LE SCORE (C'est copilot qui a fait ça, la fin du commentaire j'veux dire) /// echo $this->twig->render($this->vues["ViewScore"], [
//Si faut paser un param score de page en page dittes le moi je le ferais dw /// 'score' => $_SESSION["Score"],
/// ];
} else { } else {
var_dump($_SESSION["Questions"][$numQuestion - 1]['idanswergood']);
var_dump($_SESSION["Questions"][$numQuestion - 1]['answers'][$answerNumber]['id']);
if ($_SESSION["Questions"][$numQuestion - 1]['idanswergood'] == $_SESSION["Questions"][$numQuestion - 1]['answers'][$answerNumber]['id']) { if ($_SESSION["Questions"][$numQuestion - 1]['idanswergood'] == $_SESSION["Questions"][$numQuestion - 1]['answers'][$answerNumber]['id']) {
// Player won $time = $_SESSION["PrevTime"]->diff($_SESSION["CurrTime"]);
} else { $_SESSION["Score"]= $_SESSION["Score"] + 80 + 40*((30-$time->s)/100*10/3);
//Player lost
} }
$_SESSION["PrevTime"] = $_SESSION["CurrTime"];
echo $this->twig->render($this->vues["singleplayer"], [ echo $this->twig->render($this->vues["singleplayer"], [
'questions' => $_SESSION["Questions"], 'questions' => $_SESSION["Questions"],
'numQuestion' => $numQuestion, 'numQuestion' => $numQuestion,
@ -155,6 +161,7 @@ class ControllerUser
//EN GROS IL FAUT AFFICHER LE SCORE (C'est copilot qui a fait ça, la fin du commentaire j'veux dire) //EN GROS IL FAUT AFFICHER LE SCORE (C'est copilot qui a fait ça, la fin du commentaire j'veux dire)
//Si faut paser un param score de page en page dittes le moi je le ferais dw //Si faut paser un param score de page en page dittes le moi je le ferais dw
} else { } else {
$_SESSION["PrevTime"] = $_SESSION["CurrTime"];
echo $this->twig->render($this->vues["singleplayer"], [ echo $this->twig->render($this->vues["singleplayer"], [
'questions' => $_SESSION["Questions"], 'questions' => $_SESSION["Questions"],
'numQuestion' => $numQuestion, 'numQuestion' => $numQuestion,

@ -2,4 +2,5 @@ document.querySelector('#passerButton').addEventListener('click', passerAction);
function passerAction() { function passerAction() {
document.getElementById("FormQuestion").action = "/passer"; document.getElementById("FormQuestion").action = "/passer";
document.getElementById("FormQuestion").submit(); document.getElementById("FormQuestion").submit();
} }
export {passerAction};

@ -1,20 +1,21 @@
import { passerAction } from "./passer.js";
let tempsExport = 0; let tempsExport = 0;
const dureeQuiz = 30; // Durée du quiz en secondes const dureeQuiz = 30; // Durée du quiz en secondes
const aiguilleElement = document.getElementById("aiguille"); const aiguilleElement = document.getElementById("aiguille");
const fondElement = document.getElementById("fond"); const fondElement = document.getElementById("fond");
let tempsRestant = dureeQuiz; let tempsRestant = dureeQuiz;
let debutAnimation; let debutAnimation;
const animationDuration = 30 * 1000; // Durée de l'animation en millisecondes const animationDuration = 30 * 1000; // Durée de l'animation en millisecondes
function mettreAJourTempsExport(newTemps) {
tempsExport = newTemps;
}
function mettreAJourAiguille(timestamp) { function mettreAJourTempsExport(newTemps) {
if (!debutAnimation) { tempsExport = newTemps;
debutAnimation = timestamp; }
}
function mettreAJourAiguille(timestamp) {
if (!debutAnimation) {
debutAnimation = timestamp;
}
const tempsEcoule = timestamp - debutAnimation; const tempsEcoule = timestamp - debutAnimation;
mettreAJourTempsExport(tempsEcoule); mettreAJourTempsExport(tempsEcoule);
const pourcentageTempsEcoule = tempsEcoule / animationDuration; const pourcentageTempsEcoule = tempsEcoule / animationDuration;
@ -25,7 +26,9 @@ const dureeQuiz = 30; // Durée du quiz en secondes
if (tempsEcoule < animationDuration) { if (tempsEcoule < animationDuration) {
requestAnimationFrame(mettreAJourAiguille); requestAnimationFrame(mettreAJourAiguille);
} else {
passerAction();
} }
} }
requestAnimationFrame(mettreAJourAiguille); requestAnimationFrame(mettreAJourAiguille);
export {tempsExport}; export { tempsExport };
Loading…
Cancel
Save