<meta charset="UTF-8">
<input/>
<button>Compare com o meu segredo</button>
<script>
// Se tiver algo de errado, por favor, me corrijam.
function sorteia() {
return Math.round(Math.random() * 10);
/* Toda vez que a função "sorteia" for chamada, será retornado um valor aleatório de 0 á 10. */
}
function sorteiaNumeros(quantidade) {
/* Essa função indicará a quantidade de números aleatórios dentro de "array".
Ou seja: se digitarmos 3, ou qualquer outro número, essa será a quantidade de segredos, ou números, que serão gerados dentros de array. Porém, a idéia é geralos sem que aja a repetição de um mesmo segredo. */
var segredos = [];
/* Pode até parecer estranho ter uma variável "segredos" dentro e fora da função. Mas é importante lembrar, ou citar, que tudo o que está inserido dentro de uma função, só existe dentro dela. A menos que se use o "return" para levar para fora o que está dentro da função. */
var numero = 1;
while(numero <= quantidade) {
/* Se o valor de número for menor ou igual a "quantidade" que foi escolhida pelo usuário, será gerado um novo valor de "segredos". */
var numeroAleatorio = sorteia();
// Aqui é sorteado um número aleatório.
var achou = false;
/* achou já se inicia em "false" */
if (numeroAleatorio !== 0) {
/* A lógica é: Se o "numeroAleatorio" for diferente 0, o código será executado. */
for(var posicao = 0; posicao < segredos.length; posicao++) {
if(segredos[posicao] == numeroAleatorio){
/* Esse if irá procurar dentro de "segredos" números repetidos. Se em uma determinada posição for encontrado um valor semelhante ao "numeroAleatorio", o código de if será executado. */
achou = true;
/* Como foi encontrado um número diferente de 0, mas que se repete em alguma das posições de "segredos", damos um break e volta pra While novamente. Com isso, o processo será reiniciado de novo em:
- Sortear um número aleatório
- Verificar se ele é diferente de 0
- Entrar em um loop dentro de "for" para verificar se o número aleatório se encontra em alguma posição.
- Se sim, volta tudo de novo. Se não, passa para o if logo abaixo que adicionará esse número aleatório dentro da lista de segredos.
*/
break;
}
}
if (achou == false) {
/* Traduzindo: Se não achou o número dentro da lista, será o mesmo lançado dentro dela. */
segredos.push(numeroAleatorio);
/* "segredos.push" é uma maneira de colocar dentro da minha lista de "segredos" um número, ou valor. Como aqui, no caso, estamos usando a variável "numeroAleatorio" para trazer a função sorteia que faz exatamente isso, sortear um número de 0 á 10 e colocá-lo dentro de "segredos".*/
numero++;
// Serve para fazer o incremento na variável número, pois a condição de "while" é que o valor de número tem que ser menor ou igual a quantidade digitada pelo usuário. Quando o valor de numero passar da "quantidade", while não será mais executado.
}
}
}
return segredos;
}
var segredos = sorteiaNumeros(3);
/* Essa variável recebe o retorno do valor da variável "segredos" que está dentro da função "sorteiaNumeros". No caso, é o valor de 3 elementos que estão em array.
Se em vez de colocar 3 eu colocasse 5, me seria retornado 5 elementos em array. */
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("Você ACERTOU!");
achou = true;
break;
}
}
if(achou == false) {
alert("Você ERROU!");
}
input.value = "";
input.focus();
}
var button = document.querySelector("button");
button.onclick = verifica;
</script>