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

Mais um código comentado que pode facilitar o entendimento de como funciona o código da aula "Manipulando array"

Decidi compartilhar novamente. Caso alguém não conseguiu entender bem o funcionamento da estrutura do código da aula "Manipulando array"

<meta charset="UTF-8">

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

<script>

    function sorteia() { // aqui é a função responásavel em gerar os números aleatórios através do retorno do "Math.random()"

        return Math.round(Math.random() * 10); // aqui é gerado os números aleatórios um a um que serão enviados para dentro da "array" vazia através da função ".push()"
    }

    function sorteiaNumeros(quantidade) { // aqui essa função recebe o número declarado lá na variável "segredos". OBS: não se trata da variável "segredos" da "array" vazia que fica dentro dessa função "sorteiaNumeros(quantidade)", é a outra variável "segredos" que fica fora dessa função mencionada anteriormente

        var segredos = []; // array vazia

        var numero = 1; // aqui é o número armazenado de vezes que o "while" vai rodar

        while(numero <= quantidade) { // quando o "numero" de vezes que o "while rodou "for menor que a quantidade de números declarados como parâmetro na função "sorteiaNumeros();". Aí o "while" para de rodar

            var numeroAleatorio = sorteia(); // aqui essa variável recebe o resultado dos números aleatório gerado do "return" da função "sorteia()"

            if(numeroAleatorio !== 0) { // caso o "numeroAleatorio" gerado na função "sorteia()" não for um zero, aí ele segue para a próxima instrução abaixo. Caso contrário, ele não segue para a próxima instrução enquanto continuar dando zero

                var achou = false; // aqui é declarado o valor falso para a variável "achou"

                for(var posicao = 0; posicao < segredos.length; posicao++) { // aqui é onde é percorrido a busca pelo "numeroAleatorio" gerado na função "sorteia()" para verificar se o número que vai ser acrescentado, não é repetido e segue para a próxima instrução abaixo

                    if(segredos[posicao] == numeroAleatorio) {
                    // caso encontrou o "numeroAleatorio" repetido da função "sorteia()", então ele quebra/para e segue para a próxima instrução

                        achou = true; // se achou é verdadeiro aí segue para próxima instrução

                        break; // sendo achou verdadeiro, aí ele quebra/para
                    }
                }

                if(achou == false) { // se caso esse número não for igual à algum número na "array" gerado pela função "sorteia()", aí ele segue para a próxima instrução abaixo

                    segredos.push(numeroAleatorio); // e acrescenta esse número lá na "array" junto com os outros e segue para a próxima instrução abaixo

                    numero++; //aqui ele soma um número a + na variável "numero" dentro da função "sorteiaNumeros(quantidade)" e segue para a próxima instrução
                }

            }
            return segredos; // recebe o valor da variável segredos da "array" vazia
        }

    }

    var segredos = sorteiaNumeros(3); // aqui é a quantidade de números declarados como parâmetros que ficarão dentro da "array" vazia, e que será recebido pelo parâmetro "quantidade" na função "sorteiaNumeros(quantidade);"

    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>

<html>
<script>

    // COMEMTÁRIOS

// ".push();" é uma função. Significa empurrar. Pois ela tem a função de empurrar os items recebido para dentro da "array"

// "sorteia()" função criada para gerar um sorteio de números aleatórios

// "return" retorna o valor do sorteio da função sorteia()

// "sorteiaNumeros(quantidade)" função que gera a quantidade exata de numeros dentro da "array"

// "var segredos = [];" outra variável que funciona apenas dentro daquela função "sorteiaNumeros(quantidade)"

</script>
</html>
4 respostas
solução!

Olá Marcos, tudo bem?

Muito obrigada por compartilhar seu código comentado, dessa forma você está ajudando muitos alunos. Além disso, comentar o código é uma forma muito boa de compreender o raciocínio dos conceitos e solidificar o próprio conhecimento adquirido.

Abraços e bons estudos!

Muito obrigado beatriz!

Obrigado, me ajudou bastante

Por nada, Francisco. Eu fico feliz por ter ajudado de alguma forma.