From 08543cbea39f201c7f9c498548f2cd99cf35868d Mon Sep 17 00:00:00 2001 From: "jade.van_brabandt" Date: Tue, 14 Nov 2023 17:57:03 +0100 Subject: [PATCH] =?UTF-8?q?feat=20:=20oui=20je=20regardes=20apr=C3=A8s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Website/controllers/ControllerUser.php | 64 +++++++++++++++----------- Website/gateways/GatewayAnswer.php | 15 +++++- Website/models/ModelAnswer.php | 10 +++- Website/templates/singleplayer.twig | 2 +- Website/templates/viewScore.twig | 31 +++++++++++++ 5 files changed, 92 insertions(+), 30 deletions(-) create mode 100644 Website/templates/viewScore.twig diff --git a/Website/controllers/ControllerUser.php b/Website/controllers/ControllerUser.php index fe9539e..72b11bd 100644 --- a/Website/controllers/ControllerUser.php +++ b/Website/controllers/ControllerUser.php @@ -88,8 +88,8 @@ class ControllerUser function verifySingleplayer() { - $_SESSION["Score"]=0; - $_SESSION["PrevTime"]= new DateTime('now'); + $_SESSION["Score"] = 0; + $_SESSION["PrevTime"] = new DateTime('now'); $difficulty = $_POST['difficulty']; $chapter = $_POST['chapter']; $difficultyIsOk = TRUE; @@ -123,48 +123,60 @@ class ControllerUser function verifQuestion() //Only Handdle solo game { - $_SESSION["CurrTime"]= new DateTime('now'); + $_SESSION["CurrTime"] = new DateTime('now'); $answerNumber = $_POST["answer"]; - $numQuestion = $_POST["numQuestion"] + 1; + $numQuestion = $_POST["numQuestion"]; if (!($answerNumber == 0 or $answerNumber == 1 or $answerNumber == 2 or $answerNumber == 3)) { $_SESSION["error"] = "Valeur de choix de réponse invalide"; echo $this->twig->render($this->vues["singleplayer"], [ 'questions' => $_SESSION["Questions"], - 'numQuestion' => $numQuestion-1, + 'numQuestion' => $numQuestion, ]); + } else { - if ($numQuestion > 9) { - var_dump($_SESSION["Score"]); - /// echo $this->twig->render($this->vues["ViewScore"], [ - /// 'score' => $_SESSION["Score"], - /// ]; - } 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']) { - $time = $_SESSION["PrevTime"]->diff($_SESSION["CurrTime"]); - $_SESSION["Score"]= $_SESSION["Score"] + 80 + 40*((30-$time->s)/100*10/3); - } + $answerContent = $_SESSION["Questions"][$numQuestion]['answers'][$answerNumber]['content']; + $_SESSION["Questions"][$numQuestion]['playerAnswersContent'] = $answerContent; + if ($_SESSION["Questions"][$numQuestion]['idanswergood'] == $_SESSION["Questions"][$numQuestion]['answers'][$answerNumber]['id']) { + $time = $_SESSION["PrevTime"]->diff($_SESSION["CurrTime"]); + $_SESSION["Score"] = $_SESSION["Score"] + 80 + 40 * ((30 - $time->s) / 100 * 10 / 3); + } + + if ($numQuestion <= 2) { $_SESSION["PrevTime"] = $_SESSION["CurrTime"]; echo $this->twig->render($this->vues["singleplayer"], [ 'questions' => $_SESSION["Questions"], - 'numQuestion' => $numQuestion, + 'numQuestion' => $numQuestion+1, ]); + } else { + foreach ($_SESSION["Questions"] as &$question) { + $answer = $this->mdAnswer->getAnswerByID($question['idanswergood']); + $question['goodAnswersContent'] = $answer['content']; + } + var_dump($_SESSION["Questions"]); + // echo $this->twig->render($this->vues["viewScore"], [ + // 'score' => $_SESSION["Score"], + // 'questions' => $_SESSION["Questions"], + // ]); } } } function passer() { - $numQuestion = $_POST["numQuestion"] + 1; - if ($numQuestion > 9) { - echo $this->twig->render($this->vues["home"]); - //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 - } else { - $_SESSION["PrevTime"] = $_SESSION["CurrTime"]; + $numQuestion = $_POST["numQuestion"]; + if ($numQuestion <= 9) { + $_SESSION["PrevTime"] = $_SESSION["CurrTime"]; echo $this->twig->render($this->vues["singleplayer"], [ 'questions' => $_SESSION["Questions"], - 'numQuestion' => $numQuestion, + 'numQuestion' => $numQuestion + 1, + ]); + } else { + foreach ($_SESSION["Questions"] as &$question) { + $answer = $this->mdAnswer->getAnswerByID($question['idAnswerGood']); + $question['GoodAnswersContent'] = $answer['content']; + } + echo $this->twig->render($this->vues["ViewScore"], [ + 'score' => $_SESSION["Score"], + 'questions' => $_SESSION["Questions"], ]); } } diff --git a/Website/gateways/GatewayAnswer.php b/Website/gateways/GatewayAnswer.php index 44878a2..10187df 100755 --- a/Website/gateways/GatewayAnswer.php +++ b/Website/gateways/GatewayAnswer.php @@ -12,7 +12,7 @@ class GatewayAnswer public function addAnswer($answer) { - $query = "insert into answers(content,idquestion) values (:content,:idquestion);"; + $query = "INSERT into answers(content,idquestion) values (:content,:idquestion);"; $this->con->executeQuery( $query, array( @@ -24,6 +24,19 @@ class GatewayAnswer return $answerId; } + public function getAnswerByID($id) + { + $query = "SELECT * FROM answers WHERE id = :id;"; + $this->con->executeQuery( + $query, + array( + ':id' => array($id, PDO::PARAM_INT) + ) + ); + $results = $this->con->getResults(); + return $results[0]; + } + public function getAnswersByIDQuestions($idQuestions) { $query = "SELECT answers.content,answers.id FROM answers, questions WHERE questions.id = :idquestions AND answers.idquestion = questions.id ;"; diff --git a/Website/models/ModelAnswer.php b/Website/models/ModelAnswer.php index 2cb0659..fc85d3a 100644 --- a/Website/models/ModelAnswer.php +++ b/Website/models/ModelAnswer.php @@ -15,9 +15,15 @@ class ModelAnswer return $answersId; } - function getAnswersByIDQuestions($id) + function getAnswerByID($id) { - $answers = $this->gwAnswer->getAnswersByIDQuestions($id); + $answer = $this->gwAnswer->getAnswerByID($id); + return $answer; + } + + function getAnswersByIDQuestions($idQuestion) + { + $answers = $this->gwAnswer->getAnswersByIDQuestions($idQuestion); return $answers; } diff --git a/Website/templates/singleplayer.twig b/Website/templates/singleplayer.twig index aad43ff..22b20a1 100644 --- a/Website/templates/singleplayer.twig +++ b/Website/templates/singleplayer.twig @@ -36,7 +36,7 @@
diff --git a/Website/templates/viewScore.twig b/Website/templates/viewScore.twig new file mode 100644 index 0000000..e3956d6 --- /dev/null +++ b/Website/templates/viewScore.twig @@ -0,0 +1,31 @@ + + + + + + + Math'Educ + + + + + +

{{ score }}

+ + + + \ No newline at end of file