Olá, pessoal!
Fiz o código muitíssimo parecido com o do professor. Ele não dá nenhum erro no console mas está saindo com números repetidos ainda. Segue evidência.
Abaixo o código:
<meta charset="utf-8">
<input/>
<button>Compare!</button>
<script>
function aleatorio(n){
return Math.round(Math.random() * n);
}
function geraNumeros(quantidade){
var segredos = [];
var i = 1;
while(i <= quantidade){
var numeroAleatorio = aleatorio(10);
var achou = false;
for(var j = 0; j < segredos.length; j++){
if(segredos[j] == numeroAleatorio){
achou = true;
break;
}
}
if (achou == false) {
segredos.push(aleatorio(10));
i++;
}
}
return segredos;
}
var quantosSegredos = parseInt(prompt("Com quantos números você quer jogar? (Gerará esta quantidade de números corretos."));
var segredos = geraNumeros(quantosSegredos);
var input = document.querySelector("input");
input.focus();
function verifica(){
var achou = false;
for(var i = 0; i < segredos.length; i++){
if(input.value == segredos[i]){
alert("Você acertou!");
achou = true;
break; //para parar a repetição caso acerte.
}
}
if (achou == false) {
alert("Você errou!");
}
input.value = "";
input.focus();
}
var button = document.querySelector("button");
button.onclick = verifica;
</script>