Críticas construtivas e opiniões são sempre bem-vindas! :)
<meta charset="UTF-8">
<script>
function sorteia(multiplicador) {
var numeroSorteado = Math.round(Math.random() * multiplicador);
return numeroSorteado;
}
alert("Jogo da Advinha: Clique em 'ok' parar começar a jogar!");
alert("Obs: Digite 'SAIR' quando quiser parar de jogar.");
var nivel = 1;
while (true) {
if (nivel > 10) {
break;
}
if (chute == "SAIR" || chute == "sair") { // quebra o primeiro loop.
break;
}
var chute = ".";
var numeroMultiplicador = 10 * nivel; // define o número máximo possível a ser sorteado de acordo com o nível.
var numeroPensado = sorteia(numeroMultiplicador); // sorteia o número de acordo com o número multiplicador.
console.log(numeroPensado);
alert("Nível " + nivel + ": Chute números de 0 a " + nivel * 10);
for(var tentativas = 3; chute != numeroPensado && tentativas > 0; tentativas--) {
chute = ".";
while(isNaN(chute) || chute > numeroMultiplicador) { // verifica se o jogador digitou apenas números ou números dentro da margem permitida;
chute = prompt("Tentativas restantes: " + tentativas + " - Qual é o seu chute?");
if (chute == "SAIR" || chute == "sair") { // quebra o terceiro loop, caso o jogador escolha sair do jogo.
alert("Você saiu do jogo.");
break;
}
chute = parseInt(chute); // transforma algumas string's em número. Ex: "18f"; "13asf".
if (isNaN(chute)) {
alert("Isso não é um número!");
} else {
if (chute > numeroMultiplicador) {
alert("Digite apenas números de 0 a " + numeroMultiplicador + ".");
}
}
}
if (chute == "SAIR" || chute == "sair") { // quebra o segundo loop.
break;
}
if (chute == numeroPensado) {
nivel++;
if (nivel <= 10) {
alert("Parabéns! Você ACERTOU!");
alert("ATENÇÃO: Você passou para o nível " + nivel + ".");
} else {
break;
}
} else {
if (tentativas == 1) {
alert("Ops! Você PERDEU! O número pensado era " + numeroPensado + ". Clique em 'ok' para recomeçar.");
} else {
if (numeroPensado < chute) {
alert("Você ERROU! O número pensado é menor que seu chute. Tente novamente!");
} else {
alert("Você ERROU! O número pensado é maior que seu chute. Tente novamente!");
}
}
}
}
}
if (nivel > 10) {
document.write("PARABÉNS!!! VOCÊ ZEROU O JOGO!")
} else {
document.write("Você saiu do jogo, recarregue para jogar novamente.");
}
</script>