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

Ainda repete números

O programa continua armazenando números repetidos e não consigo achar o erro. Alguém me ajuda, por favor?

<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();
            var achou = false;


            if(numeroAleatorio !== 0) {

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


    console.log(segredos);

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

    function verifica() {

        var achou = false;
        for(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>
1 resposta
solução!

Ola Marcelo

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

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

Nessa parte especifica do seu código, tem um ";" depois de você apresentar o ciclo for, que irá indicar que o ciclo termina ali, sem apresentar a condição.