Utilizei o tratamento para impedir que "0" fossem adicionados ao array dentro da função "sorteia()", e não em "sorteiaNumeros()", como no código feito em aula. Acredito que dessa forma o código fique mais claro e limpo.
<meta charset="UTF-8" />
<input />
<button>Compare com o meu segredo</button>
<script>
var segredos = [];
var input = document.querySelector("input");
input.focus();
var button = document.querySelector("button");
button.onclick = verifica;
function sorteiaNumeros(quantidade) {
for (var i = 0; i < quantidade; i++) {
var numeroAleatorio = sorteia();
var achou = false;
for (var posicao = 0; posicao < segredos.length; posicao++) {
if (segredos[posicao] == numeroAleatorio) {
achou = true;
i--;
break;
}
}
if (!achou) {
segredos.push(numeroAleatorio);
}
}
console.log(segredos);
}
function sorteia() {
do {
var x = Math.round(Math.random() * 10);
} while (x == 0);
return x;
}
function verifica() {
var achou = false;
for (var i = 0; i < segredos.length; i++) {
if (input.value == segredos[i]) {
achou = true;
alert("Você acertou o segredo!");
break;
}
}
if (achou == false) {
alert("Você errou!");
}
input.value = "";
input.focus();
}
sorteiaNumeros(5);
</script>