git / hangman-game /script.js
KEXEL's picture
Upload 11 files
c03f6c3 verified
import getWord from "./words.js";
const contentBtns = document.querySelector(".btns");
const contentGuessWord = document.querySelector(".guess-word");
const img = document.querySelector("img");
const contentClue = document.querySelector(".clue");
const btnNew = document.querySelector(".new");
btnNew.onclick = () => init();
let indexImg;
init();
function init() {
indexImg = 1;
img.src = `img1.png`;
generateGuessSection();
generateButtons();
}
function generateGuessSection() {
contentGuessWord.textContent = "";
const { word, clue } = getWord();
const wordWithoutAccent = word
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "");
Array.from(wordWithoutAccent).forEach((letter) => {
const span = document.createElement("span");
span.textContent = "_";
span.setAttribute("word", letter.toUpperCase());
contentGuessWord.appendChild(span);
});
contentClue.textContent = `Dica: ${clue}`;
}
function wrongAnswer() {
indexImg++;
img.src = `img${indexImg}.png`;
if (indexImg === 7) {
setTimeout(() => {
alert("Perdeu :/");
init();
}, 100);
}
}
function verifyLetter(letter) {
const arr = document.querySelectorAll(`[word="${letter}"]`);
if (!arr.length) wrongAnswer();
arr.forEach((e) => {
e.textContent = letter;
});
const spans = document.querySelectorAll(`.guess-word span`);
const won = !Array.from(spans).find((span) => span.textContent === "_");
if (won) {
setTimeout(() => {
alert("Ganhou!!!");
init();
}, 100);
}
}
function generateButtons() {
contentBtns.textContent = "";
for (let i = 97; i < 123; i++) {
const btn = document.createElement("button");
const letter = String.fromCharCode(i).toUpperCase();
btn.textContent = letter;
btn.onclick = () => {
btn.disabled = true;
btn.style.backgroundColor = "gray";
verifyLetter(letter);
};
contentBtns.appendChild(btn);
}
}