4
respostas

Jogo de adivinhação para Química - código não roda corretamente.

Bom dia! Estou tentando revisar o uso de array, e pensei em um jogo de adivinhação de termos químicos. Após realizar o código, abri no navegador só que a leitura sequencial que é feita, das letras, está errada.

No entanto, ao fazer testes no console.log, para "input.value == termo[posicao], as respostas ficam corretas (true). O que há de errado no código?

meta charset="UTF-8"

h2 Descubra uma palavra relacionada com a Química (use letras minúsculas, e sem acento) /h2

script

var termo = ["a", "t", "o", "m", "o"];
var input = document.querySelector("input");


function verifica () {

    for(var posicao = 0; posicao < termo.length; posicao++) {

        if(input.value == termo[posicao]) {

            alert("Você acertou! Vamos para a próxima letra!");
            break;

        } else {

            alert("Você errou! Vamos para a próxima letra!");
            break;


        }

    }

}

var button = document.querySelector("button");
button.onclick = verifica;

/script

(''')

4 respostas

Observação: as representações das tags e dos termos script e /script, eu fiz como aprendi no curso (só não consegui representá-los corretamente, no fórum).

Bom dia Gabriel! Primeira para você colocar seu código aqui no fórum é preciso clicar em "Inserir código", logo acima da caixa de texto.

Tentei fazer um código do jeito que você estava pedindo, mas não tinha certeza se você queria que acertassem qualquer letra do termo, ou se teria que acertar termo por termo até o ultimo.

<meta charset="UTF-8">

<h2> Descubra uma palavra relacionada com a Química (use letras minúsculas, e sem acento) </h2>

<input>
<button>Digite uma letra e clique aqui</button>

<script>

var termo = ["a", "t", "o", "m", "o"];
var input = document.querySelector("input");

function verifica () {

    for(var posicao = 0; posicao < termo.length; posicao++) {

        if(input.value == termo[posicao]) {

            alert("Você acertou a " + (posicao + 1) + "º letra! Vamos para a próxima letra!");
            break;
        } 
    }
}

var button = document.querySelector("button");
button.onclick = verifica;

</script>

Nesse script, independente da posição do termo, se você acertar a letra aparece a mensagem "acertou!". Pra esse script o principal erro era ter colocado o "else", que mesmo o usuário acertando uma letra, ele vai comparar todas as outras letras e vai exibir a mensagem "você errou".

Mas alguma dúvida envia aqui!

Obrigado! Eu modifiquei o código como você apontou acima e está melhor.

Gabriel, se puder marcar esse tópico como resolvido, ajuda a mim e talvez alguém que estiver com uma dúvida semelhante!