2
respostas

Meus numeros continuam repetindo e ainda aparecem 0

Escrevi meu código durante a aula, estava sempre funcionando.

no finalzinho quando vc muda de posição uma função, para dentro de um for.

meu código começou a apresentar falhas, e eu nao consegui identificar.

depurei um pouco e agora ele funciona, pelo menos.

mas os numeros se repetem e aparece 0 na minha lista...

<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.lenth; posicao++){

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

                    }
                }          

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

            }

            return segredos;
        }






    var segredos = sorteiaNumeros(7);

    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>
2 respostas

Boa noite, Marcos! Como vai?

Os problemas no seu código são os seguintes. O primeiro é de sintaxe, pois vc escreveu segredos.lenth quando o correto seria segredos.length dentro da função sorteiaNumeros().

Já o segundo problema é de lógica. Pois o if(numeroAleatorio !== 0) também dentro da função sorteiaNumeros() deveria englobar todo o restante do código que aparece abaixo dele.

Segue o código com as correções.

<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(numeroAleatorio);
                    numero++;
                }
            }



        }

        return segredos;
    }






    var segredos = sorteiaNumeros(7);

    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>

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Muito obrigado!!

Nossa esse do lenth eu mosquei mesmo...

Já esse outro faz todo o sentido, agora está funcionando 100%!

Obrigado

Abs