HTMLify
script.js
Views: 5 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | const wordEl = document.getElementById('word'); const wrongLettersEl = document.getElementById('wrong-letters'); const playAgainBtn = document.getElementById('play-button'); const popup = document.getElementById('popup-container'); const notification = document.getElementById('notification-container'); const finalMessage = document.getElementById('final-message'); const finalMessageRevealWord = document.getElementById('final-message-reveal-word'); const figureParts = document.querySelectorAll('.figure-part'); const words = ['application', 'programming', 'interface', 'wizard']; let selectedWord = words[Math.floor(Math.random() * words.length)]; let playable = true; const correctLetters = []; const wrongLetters = []; // Show hidden word function displayWord() { wordEl.innerHTML = ` ${selectedWord .split('') .map( letter => ` <span class="letter"> ${correctLetters.includes(letter) ? letter : ''} </span> ` ) .join('')} `; const innerWord = wordEl.innerText.replace(/[ \n]/g, ''); if (innerWord === selectedWord) { finalMessage.innerText = 'Congratulations! You won! 😃'; finalMessageRevealWord.innerText = ''; popup.style.display = 'flex'; playable = false; } } // Update the wrong letters function updateWrongLettersEl() { // Display wrong letters wrongLettersEl.innerHTML = ` ${wrongLetters.length > 0 ? '<p>Wrong</p>' : ''} ${wrongLetters.map(letter => `<span>${letter}</span>`)} `; // Display parts figureParts.forEach((part, index) => { const errors = wrongLetters.length; if (index < errors) { part.style.display = 'block'; } else { part.style.display = 'none'; } }); // Check if lost if (wrongLetters.length === figureParts.length) { finalMessage.innerText = 'Unfortunately you lost. 😕'; finalMessageRevealWord.innerText = `...the word was: ${selectedWord}`; popup.style.display = 'flex'; playable = false; } } // Show notification function showNotification() { notification.classList.add('show'); setTimeout(() => { notification.classList.remove('show'); }, 2000); } // Keydown letter press window.addEventListener('keydown', e => { if (playable) { if (e.keyCode >= 65 && e.keyCode <= 90) { const letter = e.key.toLowerCase(); if (selectedWord.includes(letter)) { if (!correctLetters.includes(letter)) { correctLetters.push(letter); displayWord(); } else { showNotification(); } } else { if (!wrongLetters.includes(letter)) { wrongLetters.push(letter); updateWrongLettersEl(); } else { showNotification(); } } } } }); // Restart game and play again playAgainBtn.addEventListener('click', () => { playable = true; // Empty arrays correctLetters.splice(0); wrongLetters.splice(0); selectedWord = words[Math.floor(Math.random() * words.length)]; displayWord(); updateWrongLettersEl(); popup.style.display = 'none'; }); displayWord(); |