Boa noite, pessoal. Depois de vários testes e tentativas, finalizei o código do meu jogo. Ficou assim:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
alert(frase);
}
var numeroAleatorio = Math.round(Math.random() * 10);
for(tentativa = 2; tentativa >= 0; tentativa--) {
var numeroTentativa = parseInt(prompt("Digite um número de 1 a 10."));
if (numeroTentativa == numeroAleatorio) {
mostra("Parabéns! Você acertou! O número é " + numeroAleatorio + ".");
mostra("FIM!");
break;
} else {
if (numeroTentativa > numeroAleatorio) {
mostra("Você errou! Seu número é MAIOR do que o meu.");
mostra("Você tem " + tentativa + " tentativa(s)!");
} else {
mostra("Você errou! Seu número é MENOR do que o meu.")
mostra("Você tem " + tentativa + " tentativa(s)!");
}
}
if (tentativa == 0) {
mostra("GAME OVER!");
mostra("O número correto é " + numeroAleatorio + ".");
}
}
</script>
Porém, senti uma grande necessidade de acrescentar algumas ferramentas para ter algumas regras ao jogar, como:
- Ter controle em que o jogador só colocará números de 1 a 10 e não outra coisa.
- Que seja possível Cancelar o jogo.
- E que quando errar o número de 1 a 10, no sentido de por outra coisa, que não 'coma' a tentativa de jogo.
Com isso, infelizmente, tive que procurar no Chat GPT pra me informar desses detalhes, ficando assim o código:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
alert(frase);
}
var numeroAleatorio = Math.floor(Math.random() * 10) + 1; // Gera um número entre 1 e 10
for (var tentativa = 3; tentativa > 0; tentativa--) {
var entrada = prompt("Digite um número de 1 a 10.");
if (entrada === null) {
mostra("Jogo interrompido pelo usuário.");
break;
}
var numeroTentativa = parseInt(entrada);
if (isNaN(numeroTentativa) || numeroTentativa < 1 || numeroTentativa > 10) {
mostra("Entrada inválida! Digite um número de 1 a 10.");
tentativa++; // Incrementa para anular a decrementação
continue;
}
if (numeroTentativa === numeroAleatorio) {
mostra("Parabéns! Você acertou! O número é " + numeroAleatorio + ".");
mostra("FIM!");
break;
} else {
if (numeroTentativa > numeroAleatorio) {
mostra("Você errou! Seu número é MAIOR do que o meu.");
} else {
mostra("Você errou! Seu número é MENOR do que o meu.");
}
mostra("Você tem " + (tentativa - 1) + " tentativa(s) restante(s)!");
}
}
if (tentativa === 0) {
mostra("GAME OVER!");
mostra("O número correto era " + numeroAleatorio + ".");
}
</script>
O engraçado que ele usou === em certos pontos e o +1 depois do Math.random, que nesse caso, diz ele, que é pra realmente arredondar de forma correta.
Obrigado até aqui.