Gostaria de ter certeza se cumpri o que foi pedido pelo professor, também senti que resolvi com certos improvisos, principalmente na hora de implementar o número limitado de tentativas, aceito sugestões para melhor resolver o exercício. Se é liberado apenas postar dúvidas para quando não consegue fazer funcionar, peço que apaguem o tópico.
<meta charset="UTF-8">
<h2> Você tem 3 chances para acertar o número! </h2>
<input/>
<button>Compare com o meu segredo!</button>
<script type="text/javascript">
var segredos = [];
var contador = 1;
var chances = 0;
var chances_limite = 3;
function sorteia(quantidade){
while(contador <= quantidade){
var segredo = Math.round(Math.random() * 10);
var aux = false;
if(segredo != 0){
for(var posicao = 0; posicao <= segredos.length; posicao++){
if(segredos[posicao] == segredo){
aux = true;
break;
}
}
if(aux == false){
segredos.push(segredo);
contador++;
}
}
}
}
function verifica(){
for(var posicao = 0; posicao < segredos.length; posicao++){
var acertou = false;
if(input.value == segredos[posicao]){
alert("Você ACERTOU!!!");
acertou = true;
window.location.reload();
// esta função atualizar a página (F5) automaticamente
}
}
if(acertou == false){
alert("Você ERROU!!!");
chances++;
}
if(chances == chances_limite){
alert("Você perdeu!")
window.location.reload();
}
// Apaga o texto digitado pelo usuário.
input.value = "";
// Seleciona (foca) no campo de texto (input) para que o usuário não precisa ficar clicando.
input.focus();
}
sorteia(5);
var input = document.querySelector("input");
input.focus();
var button = document.querySelector("button");
/* Você estará chamando a função verifica() antes que o usuário clique no botão. E mais do que isso, o retorno da função será atribuído à button.click. Como a função verifica() não retorna nada, o que ficará armazenado em button.click será undefined. Daí, quando alguém clicar no botão nada acontecerá.*/
button.onclick = verifica;
console.log(segredos);
</script>