const board = document.getElementById("game-board"); const correctSound = document.getElementById("correct-sound"); const wrongSound = document.getElementById("wrong-sound"); let cards = [ 'A', 'A', 'B', 'B', 'C', 'C', '1', '1', '2', '2', '3', '3', '4', '4' ]; // Mengacak kartu cards = cards.sort(() => Math.random() - 0.5); let flippedCards = []; let matchedCards = 0; function createCard(cardValue, index) { const card = document.createElement("div"); card.classList.add("card"); card.dataset.value = cardValue; card.addEventListener("click", () => flipCard(card)); board.appendChild(card); } function flipCard(card) { if (flippedCards.length === 2 || card.classList.contains("flipped") || card.classList.contains("matched")) { return; } card.textContent = card.dataset.value; card.classList.add("flipped"); flippedCards.push(card); if (flippedCards.length === 2) { checkMatch(); } } function checkMatch() { if (flippedCards[0].dataset.value === flippedCards[1].dataset.value) { flippedCards[0].classList.add("matched"); flippedCards[1].classList.add("matched"); matchedCards += 2; correctSound.play(); // Cek apakah permainan selesai if (matchedCards === cards.length) { setTimeout(() => alert("Selamat! Kamu menang!"), 500); } } else { wrongSound.play(); setTimeout(() => { flippedCards[0].textContent = ''; flippedCards[1].textContent = ''; flippedCards[0].classList.remove("flipped"); flippedCards[1].classList.remove("flipped"); }, 1000); } flippedCards = []; } // Membuat papan permainan cards.forEach((card, index) => createCard(card, index));