Primeiro erro: quando a array da variável segredos vai ser preenchida por números aleatórios, o código me parece correto, mas ainda assim o 0 continua aparecendo no console.
function sorteiaNumeros(quantidade) {
var segredos = [];
var numero = 1;
while(numero <= quantidade) {
var numeroAleatorio = sorteia();
if(numeroAleatorio !== 0) {
var achou = false;
for (var posicao = 0; posicao < segredos.length; posicao++) {
if(segredos[posicao] == numeroAleatorio) {
achou = true;
break;
}
}
if(achou == false) {
segredos.push(sorteia());
numero++;
}
}
}
return segredos;
}
Segundo erro: depois que acerto um dos chutes, os popups de ter errado outros chutes deixam de aparecer. Eu assisti o vídeo completo esperando que esse problema fosse abordado, mas o professor sempre mostra no vídeo somente até acertar um número.
Esse é o código completo:
<meta charset="UTF-8">
<body style="background-color: black; color: white;">
<input/>
<button>Compare com o número que estou pensando!</button>
<script>
function sorteia() {
return Math.round(Math.random() * 10);
}
function sorteiaNumeros(quantidade) {
var segredos = [];
var numero = 1;
while(numero <= quantidade) {
var numeroAleatorio = sorteia();
if(numeroAleatorio !== 0) {
var achou = false;
for (var posicao = 0; posicao < segredos.length; posicao++) {
if(segredos[posicao] == numeroAleatorio) {
achou = true;
break;
}
}
if(achou == false) {
segredos.push(sorteia());
numero++;
}
}
}
return segredos;
}
var segredos = sorteiaNumeros(3);
console.log(segredos);
var input = document.querySelector("input");
input.focus();
var achou = false;
function verifica() {
for(var posicao = 0; posicao < segredos.length; posicao++) {
if(input.value == segredos[posicao]) {
alert("Parabéns! Você acertou o número secreto");
achou = true;
break;
}
}
if(achou == false) {
alert("Você errou!");
}
input.value = "";
input.focus();
}
var button = document.querySelector("button");
button.onclick = verifica;
</script>
</body>