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

Mensagens de Erro e/ou Acerto aparecem todas juntas no final. Por quê?

As mensagens de "Você errou" ou "Você acertou" aparecem apenas ao final das tentativas junto com o "Obrigada por jogar!". Tô quebrando a cabeça aqui, mas não entendo o que fiz de errado.

<meta charset="utf-8">
<big>
<script>

function pulaLinha() {document.write('<br> <br>');}
function mostra(frase) {document.write(frase);    pulaLinha();}
function sorteia(n) {return Math.round(Math.random()*100);}

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

var tentativa=1; 

while(tentativa<=3) { 
    var chute=parseInt(prompt('Pensei em um número, qual você acha que é?'));
    if (chute==numeroPensado) {mostra('Você acertou! Parabéns!!!'); break;} else {mostra('Você errou!');} tentativa++;
}

mostra('Obrigada por jogar.')

</script>
</big>
2 respostas
solução!

Testei o seu código aqui, o funcionamento está excelente. As mensagens que são escritas com o document.write() estão sendo insiridas no conteúdo do HTML assim que você erra ou acerta, porém o navegador Chrome mostra apenas no término dos alert, isto é uma característica do navegador. Eu uso o Firefox, nele eu consegui ver claramente as mensagens sendo inseridas no HTML após o erro, você pode testar isso usando um alert para receber um alerta de quando as instruções estão sendo executadas, ao responder errado ou corretamente aparecerá o alert na tela como o esperado.

<script>

    while(tentativa<=3) { 
        var chute = parseInt(prompt('Pensei em um número, qual você acha que é?'));
        if (chute == numeroPensado) {
            alert('Você acertou! Parabéns!!!'); 
            break;
        } else {
            alert('Você errou!');
        }   tentativa++;
    }
    alert('Obrigada por jogar.');

</script>

Pode observar que ao inserir um número e errar, a mensagem já aparece. No Google Chrome também está sendo inserida, porém mostra apenas no final, não sei se é pelo interpretador JavaScript que ambos utilizam, ou apenas pela conveniência de cada navegador. No Chrome faz sentido, pois você não quer exibir mensagens no HTML enquanto uma instrução alert está sendo executada, mais à frente você aprenderá a capturar os dados de um input sem o alert, por agora acho que o melhor é não se preocupar com isso e saber que o funcionamento do código está okay!! kk

Firefox_Alert

Muuuuito obrigada, Gabriel!

Eu nem pensei em testar com outro navegador, fiquei um tempão revisando o código e tava me descabelando aqui pra entender onde errei.