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

Só exibe após toda a execução

Gostaria de saber porque meu programa só exibe todas as informações após a execução. Pois no exemplo do vídeo a cada iteração era mostrado o que tinha no laço de repetição.

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

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

    function mostra(frase) {
        document.write("<big>"+ frase +"</big>");
        pulaLinha();
    }

    mostra("<h1>Jogo de Advinhação!</h1>");
    mostra("Você tem 3 chances para tentar advinhar um número de 0 a 10");

    var numeroAleatorio = Math.round(Math.random() * 10);
    var numeroChances = 3;
    mostra(numeroAleatorio);

    for (var cont = 0; cont < numeroChances; cont++) {
        var chute = parseInt(prompt("Qual o seu chute por favor? "));
        if (chute == numeroAleatorio) {
            mostra("PARABENS!!! Você Ganhou!!");
            break;
        } else {
            mostra("Você eroooouuuu!!  na sua tentativa numero " + (cont + 1));
        }
    }

</script>
5 respostas
solução!

Oi Mauricio, tudo bem? Na verdade, ele mostra a cada iteração sim, mas o tempo de execução da aplicação é muito rápida e você não chega a perceber direito o que está acontecendo.

Certo, na minha linha de pensamento, o mostra() dentro do for, era pra imprimir na tela a cada execução, porem imprime tudo no final, pelo menos na minha percepção.

Mauricio, como disse, ele imprime a cada execução, mas como o pompt sempre fica na frente (por causa da execução muito rápida) e talvez por isso você não esteja notando que a página muda a cada vez que você insere um valor no campo.

Experimente por exemplo, passar o valor para o prompt apenas uma vez, e na segunda execução, cancelar. E assim, fazer com dois valores... A cada vez que você cancelar, verá que na tela foi impresso a mensagem da execução anterior.

Faça o teste!

Mauricio boa tarde! Acho que seja alguma peculiaridade do Chrome, executa seu código no IE ou no Firefox que ele vai apresentar o texto a cada chute. E outra coisa, no seu código vc colocou pra apresentar seu número sorteado:

mostra(numeroAleatorio);

Assim a aplicação mostra o número sorteado, pra ficar mais bacana pq não coloca um:

console.log(numeroAleatorio);

Aí o número sorteado é apresentado apenas no console e vc pode testar sua aplicação na boa.

abraços.

Testei em outro navegador, no konqueror do linux, funcionou perfeitamente como eu queria! O problema era o chrome. Obrigado a todos!!