1
resposta

Manipulando array (Os números continuam se repetindo)

<meta charset="UTF-8">

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

<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(sorteia());
                     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>

Montei o código passo a passo com o instrutor, porém, ele continuar repetindo os números. O que acontece?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá tudo Bem ? Então, neste trecho do seu código:

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

você esqueceu de chamar a variável (numeroAleatorio) para dentro de (segredos.push). O correto seria:

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