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

Dúvida de alteração

Olá! Estou tentando fazer o código de um jeito que a mensagem do prompt mude se o usuário errar. O código está funcionando para quando o usuário acerta de primeira ou de segunda, mas caso acerte na terceira tentativa, aparece a mensagem de erro junto com a de acerto. E se errar as 3 tentativas, ele exibe duas vezes a mensagem de erro. Qual alteração eu deveria fazer para ele exibir apenas uma vez a mensagem de erro ou apenas a mensagem de acerto no caso da terceira tentativa? Desde já agradeço

<meta charset="UTF-8">
<script>

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

function mostra(frase) {
        document.write(frase);
        pulalinha();
    }

var n = parseInt (prompt ("Eu vou pensar em um número inteiro maior que 0 e você deve tentar adivinhar em 3 tentativas. Digite abaixo o maior número que devo pensar."));

function sorteia() {
    return Math.round(Math.random()*n);
}

var numeroPensado = sorteia()
console.log(numeroPensado)

var chutes = 1;

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

    if(chute == numeroPensado) { 
        mostra("Uau! Você acertou de primeira!");

    } else {

        while(chutes <3) {
            var chuteNovamente = parseInt(prompt("Você errou! Tente novamente!"));
        if(chuteNovamente == numeroPensado) {
            mostra ("Demorou, mas acertou!")
            break;
        } else {
            mostra ("Que pena =( Você errou! O número que eu tinha pensado era: "+ numeroPensado)
        }
        chutes++
    }    
    }

</script>
2 respostas

Oi, bom dia. Tenta assim , não sei se é bem isso que você quer.

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

function mostra(frase) {
    document.write(frase);
    pulalinha();
}

var n = parseInt(prompt("Eu vou pensar em um número inteiro maior que 0 e você deve tentar adivinhar em 3 tentativas. Digite abaixo o maior número que devo pensar."));

function sorteia() {
    return Math.round(Math.random() * n);
}

var numeroPensado = sorteia();
console.log(numeroPensado);

var chutes = 1;

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

if (chute == numeroPensado) {
    mostra("Uau! Você acertou de primeira!");

} else {

    while (chutes < 3) {
        var chuteNovamente = parseInt(prompt("Você errou! Tente novamente!"));
        if (chuteNovamente == numeroPensado) {
            mostra("Demorou, mas acertou!");
            break;
        } else {
            if (chutes == 2) {
                mostra("Que pena =( Você errou pela última vez! O número que eu tinha pensado era: " + numeroPensado);
            } else {
                mostra("Que pena =( Você errou! Tente novamente.");
            }
        }
        chutes++;
    }

    if (chutes == 3 && chuteNovamente != numeroPensado) {
        mostra("Você errou pela última vez! O número que eu tinha pensado era: " + numeroPensado);
    }
}
solução!

Assim não deu... Mas consegui o que eu queria sem o while. De qualquer forma, obrigado. Segue o código final:

<meta charset="UTF-8">
<script>

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

function mostra(frase) {
        document.write(frase);
        pulalinha();
    }

var n = parseInt (prompt ("Eu vou pensar em um número inteiro maior que 0 e você deve tentar adivinhar em 3 tentativas. Digite abaixo o maior número que devo pensar."));

function sorteia() {
    return Math.round(Math.random()*n);
}

var numeroPensado = sorteia()
console.log(numeroPensado)

var chutes = 1;

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

    if(chute == numeroPensado) { 
        mostra("Uau! Você acertou de primeira!");

    } else {

        var chuteNovamente = parseInt(prompt("Você errou! Tente novamente!"));

        if(chuteNovamente == numeroPensado) {
            mostra ("Muito bom! Sua telepatia está aguçada!")
        } else {
            var chuteUltimo = parseInt(prompt("Tente novamente, mas cuidado! É sua última tentativa!"));

            if(chuteUltimo == numeroPensado) {
                mostra("Ufa! Demorou, mas acertou! Parabéns!!!!")
            } else {
            mostra ("Que pena =( Você errou! O número que eu tinha pensado era: "+ numeroPensado)
        }}}
</script>