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

ajuda

não consigo entender o que está errado

<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 < 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>
1 resposta
solução!

Fala Patrick tudo bem ?

Você tem uma condição infinita no seu for dentro do while, onde você ta fazendo uma validação onde se o 0 for menor que segredos.lenght;

for(var posicao = 0;  0 < segredos.length; posicao++) {
            if(input.value == segredos[posicao]){
                alert("Você acertou");
                achou = true;
                break;
            } 
}    

o correto seria

for (var posicao = 0; posicao < segredos.length; posicao++) {
                    if (segredos[posicao] == numeroAleatorio) {
                        achou = true;
                        break;
                    }
}