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

Jogo da Adivinhação com um UPGRADE MASSA!

Eu queria que toda vez que jogasse o Math.round recarregasse... consultei o google e ficou assim...

<meta charset="utf-8">

<h1> JOGO DA ADIVINHAÇÃO </h1>
<hr>

<input/>

<button> Compare com o meu segredo </button>


<script>

//    var segredo = 5

    var segredo = Math.round(Math.random()*10);

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

    function verifica () {
        if (input.value == segredo) {

            alert("Você acertou!");

        } else {

            alert("Você errou! O número era " + segredo);

        }
        location.reload(segredo);
    }


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

    button.onclick = verifica;

</script>

Aprendi que o cógido "location.reload();" pode reiniciar o script ou variável desejada... Cada vez que o jogo é completa, o sistema mostra a mensagem se acertou ou errou, o número que era e reinicia o script sem repetir o número....

7 respostas
solução!

Oi Jônatas

Boa solução, mas é importante saber que o location.reload recarrega a página inteira.

Se quiser em um futuro reiniciar somente a variável do segredo você pode criar uma função para ela e chama-la quando for preciso reiniciar, poderia ser algo assim:

<meta charset="utf-8" />

<h1>JOGO DA ADIVINHAÇÃO</h1>
<hr />

<input />

<button>Compare com o meu segredo</button>

<script>
  function gerarNovoSegredo() {
    return Math.round(Math.random() * 10);
  }

  var segredo = gerarNovoSegredo();

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

  function verifica() {
    if (input.value == segredo) {
      alert("Você acertou!");
    } else {
      alert("Você errou! O número era " + segredo);
    }
    segredo = gerarNovoSegredo();
  }

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

  button.onclick = verifica;
</script>

Boa, boa!!! eu não tinha pensado nessa solução tentei algumas outras que não deu certo e encontrei essa forma... kkkk

segredo = gerarNovoSegredo(); pode ficar em cima, ou faz diferença?

 function verifica() {

    segredo = gerarNovoSegredo();

    if (input.value == segredo) {
      alert("Você acertou!");
    } else {
      alert("Você errou! O número era " + segredo);
    }

  }

embaixo do último "}" pq senão, pela ordem de preferência ele faz se executado antes de acontecer o comando necessário... assim...

function verifica() {

    if (input.value == segredo) {
      alert("Você acertou!");
    } else {
      alert("Você errou! O número era " + segredo);
    }
    segredo = gerarNovoSegredo();
  }

Oi Vitória,

Até poderia deixar antes, mas ai não seria o mesmo que foi executado primeiro na hora da declaração da variável.

var segredo = gerarNovoSegredo();

Ai você poderia deixar a variável segredo começando com null ou sem nada que será undefined pra não executar a função gerarNovoSegredo() duas vezes sem necessidade. Ficaria assim:

<meta charset="utf-8" />

<h1>JOGO DA ADIVINHAÇÃO</h1>
<hr />

<input />

<button>Compare com o meu segredo</button>

<script>
  function gerarNovoSegredo() {
    return Math.round(Math.random() * 10);
  }

  var segredo; // Repare que aqui eu removi a chamada da função gerarNovoSegredo

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

  function verifica() {
    segredo = gerarNovoSegredo();
    if (input.value == segredo) {
      alert("Você acertou!");
    } else {
      alert("Você errou! O número era " + segredo);
    }
  }

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

  button.onclick = verifica;
</script>

Eu vim pra falar algo parecido, mas ao meu ver, não tem necessidade de criar uma função nova, o código que ele deu foi esse:

<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo</button>

<script>
    var segredo = 5;

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

    function verifica() {

        if(input.value == segredo) {

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

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

    }

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

    button.onclick = verifica;

</script>

Mas para que o jogo gere um novo número, basta apenas colocar a variável de segredo dentro da função executada "on click" (nesse caso, a função verifica) e colocar um Math.random para os números serem gerados de forma aleatória toda vez que tiver um clique. Eu fiz assim:


<meta charset="UTF-8">

<input/>
<button>Tente advinhar o numero</button>

<script>

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

    function verifica() {

    var segredo = Math.round(Math.random() * 10);

        if(input.value == segredo) {

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

        alert("Você ERROU!!!!!! O certo era " + segredo);
        }

    }

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

    botaozin.onclick = verifica;

</script>

Oi Herick

Muito bom! Parabéns pelo empenho nos estudos!

Continue praticando e qualquer dúvida pode contar com a gente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software