Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

sobre o nome da variável "segredos" na função sorteiaNumeros?

A função sorteiaNumeros tem uma variável chamada segredos, é fora da função tem outra variável com o mesmo nome, eu sei a variável de dentro da função não e a mesma da de fora, porém quando vou ler o código tenho dificuldade de entender, pois quando chama o "for" que está dentro do "while" da função sorteiaNumeros não sei se ele se refere a variável que está dentro ou fora da função, alguem poderia me esclarecer melhor sobre qual variável o segredos.length do "for" está se referindo?

1 resposta
solução!

Olá, Ramon!

Nesse caso, a variável "segredos" é uma só, mas ela vai sendo complementada ao longo da execução do código. Veja, inicialmente, na função "sorteiaNumeros" ela é declarada assim:

 var segredos = [];

É como se disséssemos para o sistema: "quero criar esta variável que se chamará segredos e receberá como valor um array a ser preenchido na sequência da execução do código". Lembrando que array é um conjunto de valores com posição definida.

Ao final da função "sorteiaNumeros", esse array (da variável segredos) estará preenchido com os números sorteados pela função "sorteia", na quantidade definida quando a função "sorteiaNumeros" é chamada (dentro da variável segredos):

var segredos = sorteiaNumeros(3);

Note que aqui, o array da variável segredos será preenchido com os três números que serão sorteados. Se nós não tivéssemos declarado inicialmente que esta variável receberia um array [ ], não seria possível armazenar dentro dela, ao mesmo tempo, os três números sorteados, pois, em condições normais, uma variável só pode receber um valor de cada vez.

Então, ao final da função "sorteiaNumeros" o conteúdo do array é definido (até que ocorra um novo sorteio) pelo comando "return":

return segredos;

E poderá ser visualizado no console pelo comando "console.log":

console.log(segredos);

Finalmente, na função "verifica", será verificado se o número que o usuário digitou é igual a algum dos três números sorteados que preencheram o array da variável segredos declarada inicialmente:

    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!");
       }

Espero ter contribuído para o esclarecimento da sua dúvida. Bons estudos!