1
resposta

Meu código com comentários.

Resolvi fazer meu código e após finalizar, comentar as partes que eu achei mais importantes para fixação, apesar de parecer 'poluído' me ajuda bastante no geral.

O que acharam?

<meta charset = "UTF-8">

<!--cria uma caixa de entrada para o usuario digitar-->
<input/>

<!--cria um botao--> 
<button>Compare com o meu segredo</button>

<!--cria o mundo javascript-->
<script>

    function sorteia(){

        // a função "Math.round" arredonda o valor que a "Math.random" vai aleatoriamente gerar e o * 10 é para limitar a geração de números até 10.
        return Math.round(Math.random()*100)

    }

    // função para sortear numeros de acordo com a quantidade que você quer.
    function sorteiaNumeros(quantidade){
        var segredos = [];

        var numero = 1;

        while(numero <= quantidade){

            // atribui a funcão sorteia à variavel
            var numeroAleatrorio = sorteia();

            // usado para verificar se tem o numero 0 e o operador lógico !== faz com que o programa ignore o 0 começando pelo número 1 na contagem.
            // !=: representa a palavra “diferente” no operador lógico;
            if(numeroAleatrorio !== 0){
                var achou = false;

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

                    // esse if vai procurar se há ou não números repetidos dentro do array.
                    if(segredos[posicao] == numeroAleatrorio){
                        achou = true;
                        break;
                    }
                }
                // só executa o if se a variável "achou" for igual à falso.
                if(achou == false){

                          // a função ".push" permite “empurrar” elementos para dentro da lista do array.
                    segredos.push(numeroAleatrorio);
                    numero++;
                }    
            }
        }

        // A declaração return finaliza a execução de uma função e especifica os valores que devem ser retonados para onde a função foi chamada.
        return segredos;
    }

    // criando um vetor para a funçao "sorteiaNumeros" para definirmos quantos itens/números queremos criar dentro dela, que no caso são 4.
    var segredos = sorteiaNumeros(10); 

    // Utilizado para visualizarmos a variável em questão dentro do console (navegador).
    console.log(segredos);

    // aqui voce usa a funçao que joga o <input/> do HTML para o javascript, ja o atribui a uma variavel chamada input.
    var input = document.querySelector("input");

    input.focus();

    function verifica() {

        var achou = false; 

        // usa-se o for para correr as posiçoes do vetor enquanto o if compara se o numero recebido é igual ao que consta no vetor, se for achou recebe true o break encerra o loop.
        for(var posicao = 0; posicao < segredos.length; posicao++) {

              if(input.value == segredos[posicao]) {

                     alert("Você ACERTOU!");
                     achou = true;

                     // Função que recarrega a página automaticamente.
                     location.reload();
                     break;
              } 
       }

       if(achou == false) {

              alert("Você ERROU!");
       }
       // reseta a variavel input para recomeçar o loop e/ou para uma nova entrada/digitação.
       input.value = "";

       // dá foco ao campo input, onde o usuário digita a informação, não tendo a necessidade de sempre clicar no campo.
       input.focus();

    }

    // tras o button do HTML para o javascript.
    var button = document.querySelector("button");

    // em português, "on click" significa "no clicar", ou seja, queremos que a verificação seja feita ao clique da determinada função, que neste caso é o button.
    button.onclick = verifica;

</script>
1 resposta

Oi Jairo

É realmente excelente para fixar o que foi estudado, no dia a dia não é interessante mas pra estudo é muito bom!

Parabéns pelo empenho nos estudos!

Continue praticando e qualquer dúvida pode contar com a gente.