Percebi que no forum tem mt gente com dificuldade para entender oque está acontecendo parte por parte, então pensei compartilha o meu comentado para facilitar.
<meta charset="UTF-8">
<input/>
<button>Compare com o meu segredo</button>
<script>
// função gerar numero aleatorio
function sorteia() {
return Math.round(Math.random() * 10);
}
// função comparar o numero inserido com os contidos no array e não ser repetidos
function sorteiaNumeros(quantidade) {
var segredos = [];
var numero = 1;
// while vai repetir a quatidade de numeros do sorteio
while (numero <= quantidade) {
var numeroAleatorio = sorteia();
var achou = false;
//if so vai executar caso gere um numero diferente de 0
if (numeroAleatorio !== 0) {
//for vai verificar se existe numero repetido, se for true ele para e roda novamente até surgir um diferente
for (var posicao = 0; posicao < segredos.length; posicao++) {
if (segredos[posicao] == numeroAleatorio) {
achou = true;
break;
}
}
}
//if vai verificar se tem um numero, se ele n acho ele vai inserir e rodar novamente o while
if (achou == false) {
segredos.push(numeroAleatorio);
numero++;
}
}
return segredos
}
// segredo vai receber os 5 numeros gerados pela função sorteiaNumeros que não são repetidos
var segredos = sorteiaNumeros(5);
console.log(segredos);
//inseri um valor no campo indicado
var input = document.querySelector("input");
input.focus();
//função verifica vai comparar seu numero inserido com algum numero gerado na função sorteiraNumeros e que foi atribuido a segredos, ele entra no for e verifica se tem algum igual e para, se n ele sai e cai no if e diz q vc errou
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>