0
I’m developing a hangman game using Javascript and can’t solve two problems
Whenever I hit the first letter and print the word on the screen, it prints only after hitting the second letter and does not store the letter
The vector error keeps giving
null
What am I missing?
var paises = ["brasil", "canada", "espanha", "irlanda", "egito", "russia", "china", "australia", "argelia", "mexico"]
var letra = /\[a-z]/
var chute = document.getElementById("resposta")
var tentativas = document.getElementById("tentativas");
tentativas.innerText = 6;
var rand = paises[Math.floor(Math.random() * paises.length)]; //Método para selecionar um elemento string de um array
var resposta = []
var erro = []
erro.length = 6;
var correta = []
function valida() {
var chute2 = chute.value; //Atribuir o valor do objeto chute
chute2.toString(); //convertendo o objeto para string
var tentativas2 = parseInt(tentativas.innerText);
if (chute2 != "") {
forca(tentativas2, chute2, rand, erro);
} else {
alert("Digite uma letra");
}
}
function forca(tentativas2, chute2, rand) {
var palavra = rand;
if (tentativas2 != 0 && comparar(palavra, chute2) == true) {
alert("Letra correta. Tente mais uma")
lerVetor(palavra, chute2, resposta, erro)
espacoPalavraCorreta(resposta, correta, chute2);
document.getElementById("resposta").value = "";
} else if (tentativas2 != 0 && comparar(palavra, chute2) == false) {
alert("Letra errada. Tente mais uma")
tentativas2--
tentativas.innerText = tentativas2
lerVetor(palavra, chute2, resposta)
document.getElementById("resposta").value = "";
} else if (resposta != palavra && tentativas2 == 0) {
alert("Suas chances acabaram. A palavra correta é " + palavra)
window.location.reload()
} else {
alert("Você venceu o jogo")
window.location.reload()
}
}
function comparar(palavra, chute2) {
if (palavra.indexOf(chute2) != -1) {
return true
} else {
return false
}
}
function lerVetor(palavra, chute2, resposta, erro) {
var palavraTamanho = palavra.length;
var x;
for (var i = 0; i < palavraTamanho; i++) {
if (palavra[i] == chute2) {
resposta[i] = chute2;
//resposta[i].innerText = chute2
} else {
x = 0;
erro[x] = chute2;
x++
break
}
}
}
function espacoPalavraCorreta(resposta, correta, chute2) {
var tamanho = resposta.length;
for (var j = 0; j < tamanho; j++) {
if (resposta[j] != chute2) {
correta[j] = document.getElementById("letras_corretas")
correta[j].textContent = correta[j].textContent + " _ " //Comando para adicionar elementos no vetor e evitar override
} else if (resposta[j] == chute2) {
correta[j] = document.getElementById("letras_corretas");
correta[j].textContent = correta[j].textContent + resposta[j]
}
//Próximo desafio: Entender por que o vetor erro dá nulo e como pegar a String temporária e substituir seus caracteres
}
}
<h1>O jogo da forca mais épico de toda a história</h1>
<p class="p">Sua Resposta: <input type="text" class="sua_resposta" id="resposta" name="resposta"></p>
<input type="button" value="Chutar" onclick="valida()">
<p class="p">Tentativas: <span id="tentativas"></span></p>
<p class="p">A Resposta Correta: <span id="correta"></span></p>
<p class="p">Letras corretas: <span id="letras_corretas"></span></p>
<p class="p">Letras erradas: <span id="erros"></span></p>
I don’t have time right now, but if you want I can add comments to the code later if you’re having trouble understanding something.
– Bruno Moreira