1
resposta

Projeto + limitar o número de tentativas

Concluí o projeto e tentei adicionar uma nova funcionalidade para limitar o número de tentativas mas não está funcionando como deveria, alguém poderia me auxiliar por favor?

alert('Welcome to the secret number game.\nYou have 3 attempts.');
let maximumAttempts = 3;
let secretNumber = parseInt(Math.random() * 10 + 1); // Returns a random integer from 1 to 100
console.log(secretNumber);
let chosenNumber;
let attempts = 1;

while ((chosenNumber != secretNumber) && (attempts <= maximumAttempts)) {
    chosenNumber = prompt('Choose a number from 1 to 10: ');
    if (secretNumber == chosenNumber) {
        break;
    } else {
        if (secretNumber > chosenNumber){
            alert(`The Secret number is higher than ${chosenNumber}`);
        } else {
        alert(`The Secret number is lower than ${chosenNumber}`);
        }
        attempts++;
    }
}

if (attempts === maximumAttempts){
    alert(`You ran out of guesses! The secret number was ${secretNumber}`);
} else {
    let wordAttempt = attempts > 1 ? 'attempts' : 'attempt';
    alert(`Correct! You have discovered the Secret Number ${secretNumber} with ${attempts} ${wordAttempt}.`);
}
let wordAttempt = attempts > 1 ? 'attempts' : 'attempt';
alert(`Correct! You have discovered the Secret Number ${secretNumber} with ${attempts} ${wordAttempt}.`);
1 resposta

Oi, Amanda.

Tudo bem?

Parabéns por concluir o projeto! Vamos ver como podemos te ajudar a adicionar a funcionalidade de limitar o número de tentativas no seu jogo de adivinhação. Pelo que você descreveu, parece que o código está quase certo, mas há um pequeno ajuste que pode ser feito para garantir que a lógica funcione corretamente.

Primeiramente, notei que você tem dois alert finais que são quase idênticos. Vamos corrigir isso e garantir que o jogo termine corretamente após o número máximo de tentativas.

Aqui está uma versão ajustada do seu código:

alert('Welcome to the secret number game.\nYou have 3 attempts.');
let maximumAttempts = 3;
let secretNumber = parseInt(Math.random() * 10 + 1); // Retorna um número inteiro aleatório de 1 a 10
console.log(secretNumber);
let chosenNumber;
let attempts = 1;

while ((chosenNumber != secretNumber) && (attempts <= maximumAttempts)) {
    chosenNumber = prompt('Choose a number from 1 to 10: ');
    if (secretNumber == chosenNumber) {
        break;
    } else {
        if (secretNumber > chosenNumber){
            alert(`The Secret number is higher than ${chosenNumber}`);
        } else {
            alert(`The Secret number is lower than ${chosenNumber}`);
        }
        attempts++;
    }
}

if (attempts > maximumAttempts){
    alert(`You ran out of guesses! The secret number was ${secretNumber}`);
} else {
    let wordAttempt = attempts > 1 ? 'attempts' : 'attempt';
    alert(`Correct! You have discovered the Secret Number ${secretNumber} with ${attempts} ${wordAttempt}.`);
}

Aqui estão as principais mudanças:

  1. Removi o alert duplicado no final.
  2. Ajustei a condição do if final para attempts > maximumAttempts em vez de attempts === maximumAttempts. Isso garante que você receba a mensagem correta quando o número de tentativas for excedido.

Veja se faz sentido, e faça as mudanças.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.