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

Dúvida no Ex. 1 da Aula 7 - Desafio final

Olá, pessoal,

Estou com uma dúvida. Executei todos os passos e consegui fazer funcionar a loteria, mas queria fazer com que o código só fosse executado, depois que o usuário clicar no botão. Coloquei a parte da escolha do usuário dentro de uma função para poder chamá-la assim que o usuário clicar no botão.

<meta charset="utf-8">
<input type="submit" value="Vamos começar!" id="comecar" />
<script>
 var pulaLinha = function() {
    document.write("<br><hr><br>");
  };
  var mostra = function(frase) {
    document.write(frase);
    pulaLinha();
  };

  var quantidadeDeAcertos = function(jogados, sorteados) {
    var acertos = 0;
    for(i = 0; i < 6; i++) {
      for(j = 0; j < 6; j++) {
        if(jogados[i] === sorteados[j]) {
          acertos++;
        }
      }
    }
    return acertos;
  }

  var numerosJogados = [];
  var jogador = function() {
    alert("Por favor, nos diga quais são os seus números.");
    for(i = 0; i < 6; i++) {
      numerosJogados[i] = parseInt(prompt("Qual o seu " + (i + 1) + "º número?"));
      if(numerosJogados[i] > 60) {
        alert("Você não pode escolher números maiores que 60, vamos recomeçar.");
      }
      if(numerosJogados[i] === numerosJogados) {
        alert("Você já escolheu esse número!");
      }
    }
  };

  var botaoIniciar = document.getElementById("comecar");
  botaoIniciar.onclick = jogador();

  alert("Muito bom, agora eu vou sortear 6 números.");
  var numerosSorteados = [];
  for(i = 0; i < 6; i++) {
    numerosSorteados[i] = Math.round(Math.random() * 60);
  };

  var acertos = quantidadeDeAcertos(numerosJogados, numerosSorteados);

  mostra("Seus números são: " + numerosJogados);
  mostra("Os números sorteados são: " + numerosSorteados);
  mostra("Você acertou: " + acertos + " números!");
</script>

Obrigado!

1 resposta
solução!

Olá Douglas tudo bem?

Então, existem várias formas de fazer esta execução pegando evento de "click" do usuário, uma destas formas é montar o sorteio e a entrada de dados em uma função, neste caso é a função "executar()", depois pegamos o evento de "click" e executamos esta função completa anteriormente declarada,

<meta charset="utf-8">
<input type="submit" value="Vamos começar!" id="comecar" />
<script>
 var pulaLinha = function() {
    document.write("<br><hr><br>");
  };
  var mostra = function(frase) {
    document.write(frase);
    pulaLinha();
  };
  var quantidadeDeAcertos = function(jogados, sorteados) {
    var acertos = 0;
    for(i = 0; i < 6; i++) {
      for(j = 0; j < 6; j++) {
        if(jogados[i] === sorteados[j]) {
          acertos++;
        }
      }
    }
    return acertos;
  }

  var numerosJogados = [];

    function executar() {
    alert("Por favor, nos diga quais são os seus números.");
    for(i = 0; i < 6; i++) {
      numerosJogados[i] = parseInt(prompt("Qual o seu " + (i + 1) + "º número?"));
      if(numerosJogados[i] > 60) {
        alert("Você não pode escolher números maiores que 60, vamos recomeçar.");
      }
      if(numerosJogados[i] === numerosJogados) {
        alert("Você já escolheu esse número!");
      }
    }
    alert("Muito bom, agora eu vou sortear 6 números.");
    var numerosSorteados = [];
    for(i = 0; i < 6; i++) {
      numerosSorteados[i] = Math.round(Math.random() * 60);
    };
    var acertos = quantidadeDeAcertos(numerosJogados, numerosSorteados);

    mostra("Seus números são: " + numerosJogados);
    mostra("Os números sorteados são: " + numerosSorteados);
    mostra("Você acertou: " + acertos + " números!");
  };


  var botaoIniciar = document.getElementById("comecar");
  botaoIniciar.addEventListener("click",function(){
    executar();
  });
</script>

Espero ter ajudado e bons estudos,

Atenciosamente,

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