2
respostas

"Jogo Advinha" - Usando "break" e "while".

<meta charset="UTF-8">

<script>

    function pulalinha() {

        document.write("<br>");
        document.write("<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 numero pensado era " + numeroPensado);
             break;
        } else {
              mostra("Você ERROU!");
        }

        tentativas++;
    }

    mostra("FIM!");
</script>    

Meu código solicita um novo palpite quando erro e somente ao final das tentativas imprime as mensagens de erro. Ao acertar, o código imprime a mensagem de acerto, mostrando o número pensado.

2 respostas

Marcos Antonio,

este é um problema das versões atuais do Chrome (o vídeo da aula é de 2016). Ele exibe todos os 'alert' antes de exibir os 'document.write'. No Firefox, isto não ocorre, mesmo hoje em dia.

Como alternativa, você pode usar o firefox, ou alterar sua function mostra() para usar o alert. Aí vai ser respeitada a ordem de exibição:

function mostra(frase) {

    alert(frase);
}

Apesar deste problema existir (e de problemas envolvendo o document.write hoje em dia), não altera o entendimento da lógica de programação. Mas talvez devesse ser feita uma atualização do curso.

Obrigado pela dica, Akashi!

Tentarei implementar da forma sugerida.