Fiz o código ao mesmo passo em que assistia as aulas, e fiz tudo idêntico ao professor, mas os elementos ainda se repetem durante a execução (acompanho pelo log do console). Zeros também surgem. Segue o código:
<meta charset="UTF-8">
<input/>
<button>Compare os números</button>
<script>
function sorteio() { //função sorteio não recebe parâmetro
return Math.round(Math.random()*10); //gerador de numeros aleatórios
}
function sorteiaNumeros(quantidade) {
var numeros = [];
var numero = 1; //primeiro elemento da lista
while(numero <= quantidade) {
var numeroAleatorio = sorteio(); //só pode chamar o comando push se o número chutado não foi encontrado na lista
if(numeroAleatorio !== 0) {
var achou = false;
for(var posicao = 0; posicao < numero.length; posicao++) {
if(numero[posicao] == numeroAleatorio) {
achou = true;
break;
}
}
}
if(achou == false) {
numeros.push(numeroAleatorio);
numero++;
}
}
return numeros;
}
var numeros = sorteiaNumeros(8); //o numero dentro de sorteiaNumeros vai determinar a quantidade de elementos a serem gerados
console.log(numeros);
var comparar = document.querySelector("input");
comparar.focus();
function verificar() {
var achou = false;
for(var posicao = 0; posicao < numeros.length; posicao++){
if (comparar.value == numeros[posicao]) {
alert("Você ACERTOU!");
achou = true;
break;
}
}
if(achou == false) {
alert("Você ERROU!");
}
comparar.value = "";
comparar.focus();
}
var button = document.querySelector("button");
button.onclick = verificar;
</script>