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

[Dúvida] Atualização da página apenas depois das 3 tentativas.

No exemplo dado no vídeo, a cada resposta a página recarrega de acordo com a resposta certa ou errada. Já no código abaixo, e pagina só atualiza depois que for respondida por 3 vezes conforme a instrução do while. Alguém sabe me dizer o porquê?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function sorteia(n) {

    return Math.round(Math.random() * n);

    }

    n = 10 

    var numeroPensado = sorteia(n);

    var tentativas = 1

    while(tentativas <= 3 ) {


        var chute = parseInt(prompt("digite o seu chute!"));

        if(chute == numeroPensado) {

        mostra("Você acertou!");
        break;

        } else {

            mostra("Você errou, o número pensado foi " + numeroPensado);
        }

        tentativas++ 

    }

</script>
5 respostas

Na verdade nao é pra pagina recarregar e sim mostrar um outro popup caso a resposta esteja errada.

Luca para mim está acontecendo a mesma coisa, a página não informa se eu errei ou acertei, ela só informa ao final das três tentativas. Eu ainda não entendi o porquê.

Boa tarde galera!

Estou com o mesmo problema! No video do professor toda vez que coloca um número errado, aparece a mensagem "Você ERROU!"

No meu caso, preciso passar por todas as tentativas e só depois aparece as três impressões. Como faz para que o professor possa explicar esse fato pra gente? rsrs

solução!

Eu acredito que isso ocorre porque a função document.write() escreve no documento html e o conteúdo só é exibido após o script Javascript terminar. O problema é que a função prompt() bloqueia a execução do código até que o usuário confirme o pop-up.

Para ficar mais ilustrativo: imagem

"O DOM fornece uma representação do documento como um grupo estruturado de nós e objetos, possuindo várias propriedades e métodos. [...] Essencialmente, ele conecta páginas web a scripts ou linguagens de programação." Note que neste caso o html só é processado (HTML Parser) após a função document.write(). Se alguém puder confirmar se é isso mesmo, porque eu não tenho certeza.

Só consegui informar as primeiras tentativas erradas através do "alert"... pela função mostra só aparece depois das 3 tentativas mesmo. No meu caso eu adaptei o código para informar se o chute foi alto ou baixo: var numeroPensado = Math.round(Math.random()*10); console.log(numeroPensado); var tentativas = 1;

while(tentativas <= 3) { var chute = parseInt(prompt("Chute um número:"));

if (chute == numeroPensado) {
    mostra("Você acertou! O número pensado foi " + numeroPensado + "!");
    break;
} else {
    if (chute < numeroPensado) {
        mostra("Chutou baixo!"); // o retorno dessa função só aparece ao fim do loop
        alert("Chutou baixo!");
    } else {
        mostra("Chutou alto!");
        alert("Chutou alto!");
    }
}
tentativas++;

}