0
respostas

Manipulando Array [Resolução]

Utilizei o tratamento para impedir que "0" fossem adicionados ao array dentro da função "sorteia()", e não em "sorteiaNumeros()", como no código feito em aula. Acredito que dessa forma o código fique mais claro e limpo.

<meta charset="UTF-8" />

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

<script>
  var segredos = [];
  var input = document.querySelector("input");
  input.focus();
  var button = document.querySelector("button");
  button.onclick = verifica;

  function sorteiaNumeros(quantidade) {
    for (var i = 0; i < quantidade; i++) {
      var numeroAleatorio = sorteia();
      var achou = false;
      for (var posicao = 0; posicao < segredos.length; posicao++) {
        if (segredos[posicao] == numeroAleatorio) {
          achou = true;
          i--;
          break;
        }
      }
      if (!achou) {
        segredos.push(numeroAleatorio);
      }
    }
    console.log(segredos);
  }

  function sorteia() {
    do {
      var x = Math.round(Math.random() * 10);
    } while (x == 0);
    return x;
  }

  function verifica() {
    var achou = false;
    for (var i = 0; i < segredos.length; i++) {
      if (input.value == segredos[i]) {
        achou = true;
        alert("Você acertou o segredo!");
        break;
      }
    }
    if (achou == false) {
      alert("Você errou!");
    }
    input.value = "";
    input.focus();
  }
  sorteiaNumeros(5);
</script>