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

Número de tentativas restantes (utilizando for)

Eu estou batendo a cabeça aqui tentando arrumar um jeito de mostrar as tentativas restantes para o jogador na tela, mas o programa faz aparecer o popup um atraz do outro, e só imprime as frases 3 vezes (se errar as 3) no final...

Como resolvo esse problema?

<meta charset="UTF-8">
<script>
function jump(){
        document.write("<br><br>");
    }
function show(jojo){
    document.write(jojo);
    jump();
var numeroPensado = parseInt((Math.random() * 10));

for(var num=3; num>0; num--){
    var chute = parseInt(prompt("digite seu chute"));
    if(chute == numeroPensado){
        show("<h1>ACERTOU!!!</h1>");
        num=0;
    }else{
        show("<h1>ERROOOU!!!</h1>");
    }
    show("tentativas restantes: " + num);
}

</script>
2 respostas
solução!

Marquei no código os comentários.

A falta do fechamento da function provocou o erro do laço, onde imprimia tudo na tela direto.

O restante é tratativas de erro e polimento.

<meta charset="UTF-8">
<script>
    function jump(){
        document.write("<br><br>");
    }
    function show(jojo){
        document.write(jojo);
        jump();
    }    // Aqui estava seu erro inicial 

    var numeroPensado = parseInt((Math.random() * 10));

        var chute = parseInt(prompt("digite seu chute")); // A primeira fica fora do laço, e é o teste inicial
        var acertou = 0; //declara com valor 0 so para evitar erro

        for(var num=2; num>0; num--){ //tem que iniciar no 2 para ser 2 no total ( ja começa digitando uma)

            if(chute == numeroPensado){
                alert("ACERTOU"); // usei o alert para não gravar varias vezes na pagina
                num=0;
                var acertou = 1;
            }else{
                alert("ERROOOU! Tentativas restantes: " + num); // usei o alert para não gravar varias vezes na pagina
                var chute = parseInt(prompt("digite seu novo chute")); // pega a nova tentativa
            }

        }
        if(acertou == 1){
            show("<h1>Voce Acerou!!!</h1>");
        }else{
            if(num == 0){
                show("<h1>ERROOOU!!!</h1>");
            }
        }    

    </script>

Boa noite, Andrei! Como vai?

Apenas um adendo importante: quando estiver codificando sempre lembre de indentar corretamente o código para que ele fique o mais legível possível! Essa é uma boa prática que é bom pegar desde o princípio da caminhada no sertão da programação!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software