Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no jogo de adivinhação

Fiz meu jogo de adivinhação levemente diferente, usando a resposta se o jogador errou ou acertou direto na tela. Queria que após o jogador colocar o valor e clicar no botão, o texto do resultado aparecesse abaixo, porém, quando isso ocorre o texto substitui o que já estava escrito na página fora do <script.

Alguem consegue me ajudar?

Segue o código:

<h1> Jogo de Adivinhação </h1>
<br>
Este é um jogo de adivinhação. <br>
O computador gerará automaticamente um número entre 0 e 10 <br>
Você terá que adivinhar. <br>
<br>
Digite seu chute: <input/><br>
<button>Clique aqui para saber o resultado</button><br>

<br>

<script type="text/javascript">
    function pulaLinha(pulo){
        while(pulo > 0) {
            document.write("<br>");
            pulo= pulo-1;
        }
    }

    function escreve(texto,linhasPuladas) {
        document.write(texto);
        pulaLinha(linhasPuladas);
    }

    var numero = Math.round(Math.random()*10);
    var tentativa = 0;
    var chute = document.querySelector("input");

    function verifica(){
        if (chute != numero){
            escreve("Errou!",1);
            if(chute + 1 == numero || chute - 1 == numero) {
                escreve("Quase lá.",1)
            }
            escreve("Tente novamente",2);
            tentativa++;
        } else {
                escreve("Parabéns!! <br> Você acertou!!",1)
                escreve("O número era " + numero + ".",1)
                escreve("Foram " + tentativa + " tentativas.",2);
            }
        }

    var botão = document.querySelector("button");
    botão.onclick = verifica;

</script>

1 resposta
solução!

Olá Diego,

Isso ocorre porque o document.write reescreve a página inteira e não adiciona conteúdo. Como esse é um curso introdutório de lógica de programação, isso não é abordado, você verá como fazer isso em cursos mais a frente de JavaScript. Mas para ver um exemplo de como ficaria fiz algumas alterações no seu código:

<h1> Jogo de Adivinhação </h1>
<br>
Este é um jogo de adivinhação. <br>
O computador gerará automaticamente um número entre 1 e 10 <br>
Você terá que adivinhar. <br>
<br>
Digite seu chute: <input/><br>
<button>Clique aqui para saber o resultado</button><br>

<br>

<div id="mensagem"></div>           **DESTAQUE**


<script type="text/javascript">
    function pulaLinha(pulo){
        while(pulo > 0) {
            document.querySelector("#mensagem").innerHTML += "<br>";   **DESTAQUE**
            pulo= pulo-1;
        }
    }

    function escreve(texto,linhasPuladas) {
        document.querySelector("#mensagem").innerHTML += texto;  **DESTAQUE**
        pulaLinha(linhasPuladas);
    }

    var numero = Math.round(Math.random()*10);
    var tentativa = 0;
    var chute = document.querySelector("input");

    function verifica(){
        if (chute != numero){
            escreve("Errou!",1);
            if(chute + 1 == numero || chute - 1 == numero) {
                escreve("Quase lá.",1)
            }
            escreve("Tente novamente",2);
            tentativa++;
        } else {
                escreve("Parabéns!! <br> Você acertou!!",1)
                escreve("O número era " + numero + ".",1)
                escreve("Foram " + tentativa + " tentativas.",2);
            }
        }

    var botão = document.querySelector("button");
    botão.onclick = verifica;

</script>

Dá uma olhada nos itens que destaquei. Não esqueça de tirar o aviso de DESTAQUE na hora de executar o código.

Abraços!