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

Não exibição se errei ou acertei conforme coloco as tentativas

Fiquei com uma dúvida. Pois utilizei o mesmo código passado no vídeo, mas ao testá-lo, verifiquei que, não exibia na página se acertei ou errei a tentativa, só exibia ao final das 3 tentativas. Alguém poderia me explicar o porquê está acontecendo isso, até pensei que poderia ser alguma atualização do navegador. Depois que coloquei break, caso eu acerte na segunda tentativa, ela só exibi no final também.

Segue meu código.

<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 número pensado era " + numeroPensado);
        break;

    } else {

        mostra("Você ERROU!");
    }

    tentativas++;
}

mostra ("FIM")

</script>
6 respostas

O meu também não exibe! Se conseguir arrumar, por favor me avise!

solução!

Então, acredito que na época que o vídeo foi gravado era possível ver a atualização, acredito que o while chama muito rapido o prompt novamente não dar tempo mostrar na tela o document.write, futuramente você vai estudar umas funções que conseguem atrasar a chamada do prompt, assim sendo possível ver a atualização ( eu acho, não testei... rsrs )

Mas como uma alternativa para você ter noção a cada tentativa, eu te indicaria trocar o mostra da condição else para um alert.

O teu cod. está assim:

else {
        mostra("Você ERROU!");
}

Testa assim pra ver se acha melhor:

else {
        alert("Você ERROU!");
}

Olá, Rafaela

Corrigi para você, a partir da linha 33:

} else {

        mostra("Você ERROU!");
        tentativas++;
    }

Espero ter ajudado! Abs

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.

Está acontecendo a mesma coisa comigo. Não consegui arrumar de jeito nenhum!

Obrigada a todos pelas respostas!