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>