1
resposta

anotações das aulas

<meta charset="UTF-8">

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

<script>

    function sorteia() {return Math.round(Math.random()*30)}; //função que retorna numero inteiro de zero a 30


    //fazemos a função que nos retorna um espaço com n(escolha do usuario) valores, todos aleatorios, sem repetições ou zeros;

    function sorteiaNumeros(n){
        var segredos = [];         // essa variavel é a que recebe os n valores independentes;
        var numero = 1
        while(numero <= n) {    // processo de gerar os numeros aleatorios, sem superar o limite n estabelecido;

            var numAleatorio = sorteia(); //variavel anunciada que serve para armazenar e testar os numeros gerados nas condiçoes a seguir;

            if(numAleatorio !== 0){            // condição "se" para garantir que zeros não serão armazenados na variavel segredos;

                var achou = false;            // variavel de teste de repetição dos valores;

                for (var posicao = 0; posicao < segredos.length; posicao++) {    //função para vasculhar a lista de numeros, e testar se o novo numero a ser associado ja existe; 
                                                                                //IMPORTANTE: posicao = 0 pois assim começa a leitura de espaços no array : [0,1,2,...,n] ;

                    if(segredos[posicao] == numAleatorio) {                //teste de repetição propriamente dito, caso a variavel "achou" receber o valor "true", o teste é interrompido e o numero descartado;
                        achou = true;
                        break; 
                    }
                } 

                if (achou == false){                // apos finalizado o teste, sem interrupção, entao o programa reconhece tal como novo elemento, ate a variavel "numero" marcar o fim da lista;
                    segredos.push(numAleatorio);
                    numero++                             // IMPORTANTE, o comando "numero++" é feito dentro da condição "if", para garantir que os espaços da lista serao preenchidos com valores diferentes;

                } 
            }


        }
        return segredos
    }

    var quantidade = prompt("Escolha quantos numeros serão escolhidos aleatoriamente (Max. de 10)");    // comando de interação, assim o usuario pode selecionar a dificuldade do desafio;

    if (quantidade > 10){        //condição para garantir que o número de elementos aleatorios não passe de 10;
        quantidade = 10
    }

    var segredos = sorteiaNumeros(quantidade); 
    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("Voce acertou");
                achou = true;
                break;
            }
        }

        if (achou == false) {
            alert("Voce errou");
        }

        input.value = "";
        input.focus();

    }

    var button = document.querySelector("button");
    button.onclick = verifica;


</script>
1 resposta

Bom dia!

Sua resolução ficou excelente! Você fez um ótimo uso do aprendizado.

Parabéns pelo empenho nos estudos e continue praticando.

Para que mais pessoas consigam visualizar a sua solução proposta, é recomendado que você marque este tópico como solucionado. Assim pode ajudar ainda mais pessoas :)

Bons estudos!