Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Eu fiz igual o professor, mas ainda continua repetindo números

<meta charset ="UTF-8">
<input/>
<button>Compare com 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; posicao < segredos.length; posicao++) {
                        if(segredos[posicao] == numeroAleatorio) {
                            achou = true;
                            break;
                        }
                    }
                    if(achou == false) {
                        segredos.push(numeroAleatorio);
                        numero++;
                    }
                }
            }
            return segredos;
    }
    var segredos = sorteiaNumeros(5);
    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

Olá Alexandre,

na função sorteiaNumeros, no for está faltando definir que a posição começa em 0, por enquanto está só assim:

for(var posicao; posicao < segredos.length; posicao++) {
solução!

Boa tarde, Alexandre! Como vai?

O laço for que vc criou dentro da função sorteiaNumeros() está incorreto pois faltou a inicialização da variável auxiliar do laço! O correto seria fazer:

for(var posicao = 0; posicao < segredos.length; posicao++) {
     // restante do código omitido.
}

Corrigindo esse problema o seu código vai funcionar como deveria.

Grande abraço e bons estudos!

Obrigado pela ajuda, não acredito que eu errei por um detalhe tão pequeno, mas esta valendo. Obrigado novamente

Por nada, Alexandre! Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software