Olá, bom momento.
Criei um código JavaScript para o exercício do "Jogo de Adivinha", mas estou com um problema. O que o código faz em resumo (Código na integra a baixo):
- Gera um número secreto aleatório
- Recebe um palpite do jogador
- Se o chute estiver certo, exibe o resultado
- Se o chute estiver errado, soma 1 ao contato de número de tentativa do jogador, exibe uma mensagem dizendo se o número secreto é maior ou menor do que o número chutado e permite que o jogador tente mais uma vez
- Quando o jogador acerta, o código imprime o resultado e o número de tentativas que o jogador levou.
Problema: Quando o chuta um número MAIOR do que o número secreto e, em seguida, um número MENOR do que o número secreto, o contador de tentativas não funciona adequadamente. Exemplo: Digamos que o número secreto seja 5. O jogador chuta 10, depois 2, depois 6, depois 4 e aí acerta o 5. O programa deveria mostrar que foram 5 tentativas, mas ele mostra 3.
Como corrijo o código para que ele conte corretamente p número de tentativas do jogador?
Código na integra:
<meta charset="UTF-8">
<script>
function imprime(textoRecebido) {
document.write("<big>"+textoRecebido+"</big><br>");
}
var numeroSecreto = Math.round(Math.random() * 10);
var chute = parseInt(prompt("Tente adivinhar o número secreto."));
var nTentativas = 1;
console.log(numeroSecreto);
if(chute == numeroSecreto) {
imprime("<h1>Incrível! Você acertou de primeira!</h1>");
}
else {
while(chute!=numeroSecreto) {
nTentativas = nTentativas+1
if(chute>numeroSecreto) {
chute = parseInt(prompt("Você errou. O número secreto é MENOR do que o número que você chutou. Tente novamente."));
}
if(chute<numeroSecreto) {
chute = parseInt(prompt("Você errou. O número secreto é MAIOR do que o número que você chutou. Tente novamente."));
}
}
if(nTentativas>3) {
imprime("<h2>Parabéns... Você <i>finalmente</i> acertou.</h2>");
imprime("O número secreto era "+numeroSecreto+".");
imprime("Você precisou de "+nTentativas+" tentativas pra acertar.");
}
else {
imprime("<h2>Parabéns! Você acertou.</h2>");
imprime("O número secreto era "+numeroSecreto+".<br>");
imprime("Número de tentativas: "+nTentativas);
}
}
</script>
(Ele exibe o número secreto no console após a primeira tentativa pra ajudar a testar)
Qualquer ajuda é bem-vinda. Obrigado.