I'm developing a fork game using JavaScript and I can not solve two problems
Whenever I hit the first letter and print the word on the screen, it prints only after I hit the second letter and does not store the letter
The error vector is 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>