2
respostas

Dúvidas com código

Olá pessoal, fiz o código abaixo e quero aprimorar algumas coisas, mas estou em dúvida. 1° Gostaria que as instruções ficassem visíveis na tela, mesmo antes do usuário dar o "Chute". 2º Ao final, se errar, aparece a frase "Tente novamente", gostaria que ele abrisse novamente a tela para o "palpite do chute". Já tentei algumas modificações, mas nada funciona ..rs



<meta charset="UTF-8">
<h1> JOGO DE ADIVINHAÇÃO</h1>
<br>
Tente adivinhar um número entre 1 e 10.
<br>
Insira o número na caixa de texto e clique em OK para saber se acertou a resposta.
<br> 
Vamos lá?!
<br> 
<br>

<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 <= 1) {

        var chute = parseInt(prompt("Digite seu chute!"));

        if(chute == numeroPensado) {

            mostra("Você ACERTOU, o número pensado era " + numeroPensado);
            break;

        } else {

            mostra("Você ERROU, tente novamente!");

        }

        tentativas++;
    }

    mostra("FIM");


</script>
2 respostas

Olá, a variável chute que é o prompt é chamada assim que o navegador carrega, daí a chamada while entra em ação antes mesmo que o html seja carregado.

Uma maneira de resolver seria colocar o html e o javascript em arquivos diferentes, fazendo com que todo o html seja carregado primeiro (mas a essa altura do curso, não vimos isso ainda). Assim, com o que foi visto até agora, eu te indicarria colocar um <button> Vamos lá</button> no html e no Javascript atribuir uma função que chama o loop while.

<meta charset="UTF-8">
<h1> JOGO DE ADIVINHAÇÃO</h1>
<br>
Tente adivinhar um número entre 1 e 10.
<br>
Insira o número na caixa de texto e clique em OK para saber se acertou a resposta.
<br> 
<button> Vamos lá ?</button>
<br> 
<br>


<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;

    function vamosLa() {

        while(tentativas <= 1) {

            var chute = parseInt(prompt("Digite seu chute!"));

            if(chute == numeroPensado) {

                mostra("Você ACERTOU, o número pensado era " + numeroPensado);
                break;

            } else {

                mostra("Você ERROU, Atualize a página para tentar novamente!");

            }

            tentativas++;
        }
        mostra("FIM");

    }

    var button = document.querySelector("button");

    button.onclick = vamosLa;


</script>

1 - No html criei o button; 2 - No Javascript criei a função vamosLa; 3 - No Javascript criei a variável que faz referencia ao button lá do html; 4 - atribui a essa variável o onclick, ou seja, quando clicar vai chamar a função vamosLa;

Espero ter ajudado, qualquer coisa fala ai.. hehe

Ah valeu pela ajuda!!!