From 0d2f00fcd3ebfcaffb5745288a21d8a14e9bf531 Mon Sep 17 00:00:00 2001 From: Antoine Jourdain Date: Sun, 19 Nov 2023 20:45:18 +0100 Subject: [PATCH] le JS, c'est bien. --- Project/php/js/memory.js | 78 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Project/php/js/memory.js diff --git a/Project/php/js/memory.js b/Project/php/js/memory.js new file mode 100644 index 0000000..4df90cf --- /dev/null +++ b/Project/php/js/memory.js @@ -0,0 +1,78 @@ +document.addEventListener('DOMContentLoaded', function () { + var cards = document.querySelectorAll('.card'); + var nbCard = 0; + var word1; + var word2; + var clickEnabled = true; + + cards.forEach(function (card) { + card.addEventListener('click', function () { + if(clickEnabled === false || card.dataset.word === word1 || card.classList.contains('found')){ + return; + } + card.classList.toggle('flipped'); + + nbCard += 1; + if (nbCard === 1) { + word1 = card.dataset.word; + } else if (nbCard === 2) { + word2 = card.dataset.word; + } + + if (nbCard === 2) { + clickEnabled = false; + if (checkForMatch(word1, word2) === true) { + cards.forEach(function (card) { + if (card.dataset.word === word1 || card.dataset.word === word2) { + card.classList.add('found'); + card.removeEventListener('click', null); // Remove click event listener + } + }); + setTimeout(function () { + cards.forEach(function (card) { + if (card.dataset.word === word1 || card.dataset.word === word2) { + card.classList.add('invisibleFound'); + card.removeEventListener('click', null); // Remove click event listener + } + }); + checkGameCompletion(); // Check if all pairs are found + clickEnabled = true; + }, 2000); + } else { + cards.forEach(function (card) { + if (!card.classList.contains('found') && (card.dataset.word === word1 || card.dataset.word === word2)) { + card.classList.add('wrong'); + } + }); + setTimeout(function () { + cards.forEach(function (card) { + if (!card.classList.contains('found') && (card.dataset.word === word1 || card.dataset.word === word2)) { + card.classList.toggle('flipped'); + card.classList.remove('wrong'); + } + }); + clickEnabled = true; + }, 1500); + } + nbCard = 0; + } + }); + }); + + function checkForMatch(word1, word2) { + for (let i = 0; i < pairs.length; i++) { + const pair = pairs[i]; + if ( + (pair[0] === word1 && pair[1] === word2) || + (pair[0] === word2 && pair[1] === word1) + ) { + return true; + } + } + return false; + } + + function checkGameCompletion(){ + return; + } +}); \ No newline at end of file