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

melhorando o adivinha

// ----- melhorando o adivinha -----

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

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

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

    var tentativas = 1;

    while(tentativas <= 3) {

            var chute = parseInt(prompt("Digite seu chute!"));

            if(chute == numeroPensado) {

                mostra("Você ACERTOU, o número pensado era " + numeroPensado);
                break;

        } else {

                mostra("Você ERROU!");
            }

       tentativas++;
    }

mostra("FIM");

</script>
3 respostas
solução!

Olá Silvestre, tudo bem?

O código está muito bom. Parabéns!

Continue praticando sempre! Um forte abraço!

Eu queria tentar colocar para aparecer na última tentativa se a pessoa errasse qual era o número pensado, tentei mudar o código, mas aí aparece a resposta logo na primeira tentativa. Aí pensando mais um pouco fiz assim:

while(tentativas <= 3) {

    var chute = parseInt(prompt("Digite seu chute")); //o parseInt lê o texto como número

    if(chute == numeroPensado) {
        alert("Você acertou! O número pensado foi " + numeroPensado + ".");
        break; //interrompe o loop

    } else {
        alert("Você errou!");
    }
    if(tentativas == 3 && chute != numeroPensado) {
        alert ("Você errou! O número pensado foi " + numeroPensado + ".");
    }
    tentativas++;
}

Mas aí ele mostra primeiro o terceiro "Você errou!" e depois o "Você errou, o número pensado era X." Como eu poderia resolver isso?

Olá Tayane, tudo bem?

Veja se esse código atende o que procura:

while (tentativas <= 3) {

        var chute = parseInt(prompt("Digite seu chute")); //o parseInt lê o texto como número

        if (chute == numeroPensado) {
            alert("Você acertou! O número pensado foi " + numeroPensado + ".");
            break; //interrompe o loop

        }
        if(chute != numeroPensado && tentativas == 1) {
            alert("Você errou!");
        }

        if(chute != numeroPensado && tentativas == 2) {
            alert("Você errou!");
        }

        if (chute != numeroPensado && tentativas == 3) {
           alert("Você errou!! O número pensado foi " + numeroPensado + ".");
        }
        tentativas++;
    }

Fiz alguns testes e deu certo.

Mas para ter um código melhor organizado, eu faria dessa forma, veja:

 while (tentativas <= 3) {

        var chute = parseInt(prompt("Digite seu chute")); //o parseInt lê o texto como número

        if (chute == numeroPensado) {
            alert("Você acertou! O número pensado foi " + numeroPensado + ".");
            break; //interrompe o loop

        } else {
            alert("Você errou!");
        }
        if (tentativas == 3 && chute != numeroPensado) {
            document.write("O número pensado foi " + numeroPensado + ".");
            pulaLinha();
        }
        tentativas++;
    }

Espero ter ajudado. Abraços!

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