4
respostas

Meu array não varia

<meta charset="UTF-8">

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

insira seu código aqui

<script>

  function sorteia() {

    return Math.round(Math.random() * 10);

  }

  function sorteiaNumeros(quantidade) {

    var segredos = [];
    var numero = 1;

    while(numero <= quantidade) {

      var numeroAleatorio = sorteia();

      if(numeroAleatorio != 0) {

          var achou = false;

          for(var posicao = 0; posicao < segredos.length; posicao++) {

            if(segredos[posicao] == numeroAleatorio) {
              achou = true;
              break;

            }

          }

          if (achou == false) {
            segredos.push(numeroAleatorio);
            numero++;
          }

        }

    }

    return segredos;

  }

  var segredos = sorteiaNumeros(3); 
  console.log(segredos); 

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

  function verifica (){

    var achou = false;
    for(var posicao = 0; posicao < segredos.length; posicao++){

      if(input.value == segredos[posicao]) {

        alert("Você ACERTOU!");
        achou = true;
        break;
      }

    }

    if(achou == false){
        alert("Você ERROU!");

    }

      input.value = "";
      input.focus ();

  }

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

  </script>
4 respostas

Edson, não entendi muito bem sua pergunta. Como assim seu array não varia? O que não varia?

Estava vendo seu código e vi que você está fazendo um for para rodar os índices do seu array e verificar os valores de cada index.

Outra maneira de fazer é utilizar a função indexOf do array. Essa função vai te retornar o index daquele valor dentro do seu array e caso não exista nenhum index com aquele valor o método retorna -1.

Sua função verifica ficaria assim se você utilizasse essa função ao invés do for

 function verifica (){
        var achou = false;

        if(segredos.indexOf(input.value) != -1) {
            alert("Você ACERTOU!");
            achou = true;
            break;
        }

        if(achou == false){
            alert("Você ERROU!");
        }

        input.value = "";
        input.focus ();
    }

Oi Edson acredito que sua dúvida esteja relacionada com o Math.randon da função sorteia, então quando você carrega a página ele carrega 3 números aleatórios para que você recarregue outros números você precisa atualizar a página (f5). Esperto ter ajudado.

Oi Edson Moreira Borges Junior dá um retorno, caso persista alguma dúvida a respeito desse exercício pode perguntar aqui mesmo ou se você não tiver mais nenhuma dúvida a respeito você pode marcar uma resposta como solução, finalizando assim esse tópico.Espero ter ajudado. Bons estudos.

Oi Edson, caso persista alguma dúvida a respeito desse exercício pode perguntar aqui mesmo ou se você não tiver mais nenhuma dúvida a respeito você pode marcar uma resposta como solução, finalizando assim esse tópico.Espero ter ajudado. Bons estudos.