Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Jogo adivinha com for

Estou tentando replicar o jogo do adivinha com for, porém quando digito o número errado ele não inicia as tentativas. Não aparece nenhuma mensagem de erro, apenas não inicia as atentativas.

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
}

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
}

var numeroPensado = Math.round(Math.random() * 10);
console.log(numeroPensado);

for (var tentativas = 1; tentativas <= 3; tentativas++);{ 
     var chute = parseInt(prompt("Digite seu chute!")); 

     if (chute == numeroPensado){ 

        mostra("Você acertou! o número pensado foi " + numeroPensado);

            tentativas = numeroPensado;

             }else{mostra("Você errou, o número pensado foi " + numeroPensado);}

             }

mostra("Fim");


</script>
3 respostas

Olá, Gabriel, tudo bem?

O problema está nessa linha:

for (var tentativas = 1; tentativas <= 3; tentativas++);{ 

Você colocou um ponto e vírgula ; antes de abrir a chave, isso na verdade faz com que o for não faça nada, então a repetição não é realizada e o código abaixo só é executado uma única vez, por isso você só consegue fazer um chute.

Então basta tirar o ponto e vírgula:

for (var tentativas = 1; tentativas <= 3; tentativas++) { 

Espero ter ajudado! Abraços e bons estudos :)

Nestes casos que não aparece erro no console tem alguma outra forma de verificar erros no código, ou e só no visual mesmo?

solução!

Olá novamente, Gabriel!

Em javascript, infelizmente existem situações onde o console não indicará erro nenhum e ainda assim o programa não funciona como esperado. O console costuma apontar erros de sintaxe ou então comandos inválidos.

O que aconteceu com você não foi um erro para o programa. Mesmo sendo estranho colocar um ponto e vírgula antes de abrir as chaves do for, isso é uma instrução aceitável para o javascript.

Nesse tipo de caso, devemos contar com nossos conhecimentos de programação e saber questionar onde o erro pode estar, assim o encontraremos mais rápido.

No caso do seu código, como a pergunta não estava sendo repetida, a primeira coisa que fui verificar era se o comando for estava realizando a repetição adequadamente. Acabei não demorando muito para ver o ponto e vírgula, pois era um erro que já tinha visto antes.

Mas não se desanime caso você passe muito tempo em um código sem conseguir encontrar o erro! Você ainda está aprendendo e é normal ficar travado em algum problema, principalmente esses que não são apontados pelo console. Por isso estamos aqui para te ajudar nesse tipo de situação :)

Espero ter ajudado! Abraços e bons estudos.