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

Jogo da adivinhação

<meta charset="utf-8">

<script>

    function pularLinha () {
        document.write ("<br>");
    }

    function mostrar (frase) {
        document.write (frase);
        pularLinha ();
    }

    var numeroPensado = 1;
    var chute = parseInt (prompt ("Digite o seu chute."));

    var tentativas = 1;

    while (tentativas <= 2) {
        if (chute == numeroPensado) {
            mostrar ("Você acertou. O número pensado foi " + numeroPensado + ".");
            break;
        }
        else {
            var chute = parseInt (prompt ("Você errou. Tente novamente."));
            tentativas++;
        }
    }

    if (tentativas == 4) {
        mostrar ("Você errou 3 vezes. O número pensado foi " + numeroPensado + ".")
    }


</script>

Olá pessoal. Estou com uma dúvida no jogo de adivinhação.

Quis fazer um pouco diferente que o do professor, mas apareceu alguns problemas que não estou conseguindo resolver.

No meu programa, quero que o usuário tenha como mensagem na primeira tentativa "Digite seu chute." Caso ele erre, quero que as mensagem seguintes seja "Você errou. Tente novamente.". Também que, se o usuário errar três vezes, apareça uma mensagem "Você errou três vezes. O numero pensado foi 1". Até ai consegui fazer.

Porém se o usuário acerta na última tentativa, ele não recebe a mensagem "Você acertou." mas sim a mensagem "Você errou 3 vezes...". Alguém pode ajudar?

3 respostas
solução!

E aí Vinicius, beleza?

Pelo que reparei é o seguinte:

Na sua última tentativa, a variável tentativas vale 2, porém logo depois você incrementa tentativas para 3 e você sai do seu while, sem fazer a verificação novamente.

if (chute == numeroPensado) {
            mostrar ("Você acertou. O número pensado foi " + numeroPensado + ".");
    }
    else {
        mostrar ("Você errou 3 vezes. O número pensado foi " + numeroPensado + ".")
    }

Obrigado Daniel. Eu desconfiava que era essa o problema, mas não sabia como resolver. Fui tentar novamente e adicionei mais um if/else e agora está funcionando. Valeu pela ajuda. :D

Disponha :)