Acompanhei a criação deste código e assisti esta aula 3 vezes, mas no meu resultado, no console ele ainda estava gerando o "segredo" com números repetidos.
Fix uma alteração no código que aparentemente resolveu esta questão, e gostaria de compartilhar.
<script>
function sorteia() {
return Math.round(Math.random() * 10);
}
function sorteiaNumeros(quantidade) {
var segredos = [];
var numero = 1;
while (numero <= quantidade) {
var numeroAleatorio = sorteia();
var achou = false;
// Verifica se o número aleatório já foi sorteado
if (numeroAleatorio !== 0) {
for (var posicao = 0; posicao < segredos.length; posicao++) {
if (segredos[posicao] == numeroAleatorio) {
achou = true;
break;
}
}
// Se não foi encontrado número repetido, adiciona o novo número
if (!achou) {
segredos.push(numeroAleatorio);
numero++;
}
}
// Gera um novo número aleatório caso encontre um repetido
else {
numeroAleatorio = sorteia();
}
}
return segredos;
}
var segredos = sorteiaNumeros(5);
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>
a alteração está exatamente aqui:
if (!achou) {
segredos.push(numeroAleatorio);
numero++;
}
}
// Gera um novo número aleatório caso encontre um repetido
else {
numeroAleatorio = sorteia();
}
Poderiam comentar, se esta é realemtne uma opção válida?
Obrigado!!