diff --git a/Project/db/defaultinsert.sql b/Project/db/defaultinsert.sql index f91785f..9acb609 100755 --- a/Project/db/defaultinsert.sql +++ b/Project/db/defaultinsert.sql @@ -59,13 +59,11 @@ INSERT INTO Register VALUES ("French", "Moto"); INSERT INTO Vocabulary VALUES ("Cat"); INSERT INTO Vocabulary VALUES ("Dog"); INSERT INTO Vocabulary VALUES ("Computer"); -INSERT INTO Vocabulary VALUES ("Bike"); INSERT INTO Vocabulary VALUES ("Motorbike"); -- Register : EN INSERT INTO Register VALUES ("English", "Cat"); INSERT INTO Register VALUES ("English", "Dog"); INSERT INTO Register VALUES ("English", "Computer"); -INSERT INTO Register VALUES ("English", "Bike"); INSERT INTO Register VALUES ("English", "Motorbike"); -- Translate @@ -74,7 +72,6 @@ INSERT INTO Translate VALUES (null, "Chien", "Dog", 1); INSERT INTO Translate VALUES (null, "Ordinateur", "Computer", 2); -INSERT INTO Translate VALUES (null, "Moto", "Bike", 3); INSERT INTO Translate VALUES (null, "Moto", "Motorbike", 3); -- Practice diff --git a/Project/php/controller/AbsController.php b/Project/php/controller/AbsController.php index a3c582d..04e8fec 100755 --- a/Project/php/controller/AbsController.php +++ b/Project/php/controller/AbsController.php @@ -60,20 +60,33 @@ abstract class AbsController } } - public function memory(): void{ + public static function memory($match): void{ global $twig; try{ - $idVoc = Validation::filter_int($_GET['id'] ?? null); + $idVoc = Validation::filter_int($match['params']['id'] ?? null); $wordList = (new \gateway\TranslationGateway)->findByIdVoc($idVoc); + $wordShuffle = array(); + + $pairs = []; + for ($i = 0; $i != count($wordList); $i += 1) { + $wordShuffle[] = $word1 = $wordList[$i]->getWord1(); + $wordShuffle[] = $word2 = $wordList[$i]->getWord2(); + + $pairs[] = [$word1, $word2]; + } + + shuffle($wordShuffle); + + echo $twig->render('memory.html', [ + 'wordShuffle' => $wordShuffle, + 'pairs' => $pairs, + ]); } catch (Exception $e){ throw new Exception("Erreur"); } - - - echo $twig->render('memory.html'); } public function quiz(): void { diff --git a/Project/php/controller/FrontController.php b/Project/php/controller/FrontController.php index 1754329..b2597d3 100755 --- a/Project/php/controller/FrontController.php +++ b/Project/php/controller/FrontController.php @@ -40,6 +40,10 @@ class FrontController $this->home(); break; + case 'memory': + AbsController::memory($match); + break; + case 'login': $this->login(); break; @@ -96,6 +100,7 @@ class FrontController public function home(): void { global $twig; echo $twig->render('home.html'); + var_dump($_SESSION['roles']); } public function login(): void { diff --git a/Project/php/css/memory.css b/Project/php/css/memory.css new file mode 100644 index 0000000..4de1b9c --- /dev/null +++ b/Project/php/css/memory.css @@ -0,0 +1,37 @@ +body { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + margin: 0; + background-color: #f0f0f0; +} + +#memory-game { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.card { + width: 100px; + height: 100px; + background-color: #fff; + border: 2px solid #ccc; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + font-size: 18px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +.card.flipped { + background-color: #f0f0f0; /* Couleur de fond lorsqu'une carte est retournée */ +} + +.card.found { + background-color: #8aff8a; /* Couleur de fond lorsqu'une paire est trouvée */ + cursor: default; +} \ No newline at end of file diff --git a/Project/php/templates/memory.html b/Project/php/templates/memory.html new file mode 100644 index 0000000..25e24e4 --- /dev/null +++ b/Project/php/templates/memory.html @@ -0,0 +1,19 @@ + + + + + + Memory Game + + + +
+ {% for word in wordShuffle %} +
+ {{ word }} +
+ {% endfor %} +
+ + + \ No newline at end of file