O código em questão é esse:
<meta charset="utf-8">
<input/>
<button>Compare com o meu segredo</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++){
console.log(segredos.length);
if(segredos[posicao] == numeroAleatorio){
achou = true;
break;
}
}
if(achou == false){
segredos.push(numeroAleatorio);
numero++;
}
}
}
return segredos;
}
var segredos = sorteiaNumeros(3);
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>
Minhas dúvidas:
1- Eu entendi que o o número 3 é o parâmetro que a função sorteiaNumeros recebe e atribui à quantidade, mas como e quando que isso se torna o tamanho da minha array (array.length)?
2- As minhas tentativas são infinitas, ele não encerra o jogo nunca. Minha ideia era que ele encerrasse quando tentativas <= quantidade ou no primeiro acerto, mas como eu poderia fazer isso? (Não quero código pronto, queria apenas uma orientação lógica para eu criar o código). Pensei em criar uma função validaTentativas, mas aí ela teria de ser chamada dentro do sorteiaNumeros? Não consegui sair do lugar :(
3- Como desafio, o exercício pede para sortear outros números aleatórios que não podem se repetir na lista dos números aleatórios sorteados. Pensei em criar uma ou mais arrays. Mas aí pensei que para cada array eu teria de criar praticamente um sorteiaNumeros próprio e depois comparar as posições entre as arrays. Mas uma função para cada array, isso não me parece lógico, como eu poderia começar? Melhor criar números avulsos, ou seja, sem usar array?
Última pergunta, mas sobre o fórum, eu deveria colocar cada dúvida dessa em uma discussão diferente?
Obrigada!