Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Mudança no código do número secreto

Olá! Estava tentando fazer algumas pequenas alteração no código referente as aulas que acompanham o "Número Secreto" mas não consegui encontrar uma solução. A minha ideia original era adicionar uma frase única caso a pessoa acertasse de primeira, no caso: "alert(Parabéns, você acertou de primeira! O número secreto era ${numeroSecreto});" Até aqui tudo certo. Porém o que acontece é que mesmo com mais tentativas essa mensagem aparece, bem como a mensagem do número de tentativas: "alert(Você acertou o número secreto ${numeroSecreto} com ${tentativas} tentativas);"

Conforme fui fazendo as alterações fui ficando cada vez mais mais perdido com os { }

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigado!

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Olá Glauco!

Pelo que entendi, você gostaria de exibir uma mensagem especial quando o usuário acertar o número secreto de primeira e uma mensagem diferente quando ele acertar após várias tentativas. Para isso, você pode utilizar uma variável que conta as tentativas e verificar se o valor dela é 1 quando o usuário acertar.

Vou te dar um exemplo de como você pode ajustar o seu código para que isso funcione:

let numeroSecreto = 6;
console.log(`número secreto ${numeroSecreto}`);
let chute;
let tentativas = 0; // Inicializa o contador de tentativas

// Enquanto chute não for igual ao número secreto
while (chute != numeroSecreto) {
    tentativas++; // Incrementa o contador a cada tentativa
    chute = prompt("Escolha um número entre 1 e 10");
    if (chute == numeroSecreto) {
        if (tentativas == 1) {
            // Se acertar de primeira, mostra a mensagem especial
            alert(`Parabéns, você acertou de primeira! O número secreto era ${numeroSecreto}`);
        } else {
            // Se não for de primeira, mostra a mensagem com o número de tentativas
            alert(`Você acertou o número secreto ${numeroSecreto} com ${tentativas} tentativas`);
        }
        break;
    } else if (chute > numeroSecreto) {
        alert(`Você não acertou. O número secreto é menor que ${chute}`);
    } else {
        alert(`O número secreto é maior que ${chute}`);
    }
}

Note que eu mudei a inicialização da variável tentativas para 0 e a incremento antes de verificar o chute no loop while. Isso garante que, na primeira tentativa, tentativas será igual a 1. Se o usuário acertar de primeira, a condição tentativas == 1 será verdadeira e a mensagem especial será exibida. Caso contrário, a mensagem com o número de tentativas será exibida.

Espero que essa explicação ajude a resolver o problema que você estava enfrentando com o código. Lembre-se de testar as alterações para garantir que tudo está funcionando como esperado. Qualquer dúvida manda aqui. Espero ter ajudado e bons estudos!

Faz todo sentido sim! Eu estava tentando criar uma nova variável e deixar essa mensagem especial fora do loop, e caso ela acontecesse o que estaria em baixo na escrita do código não aconteceria. Deve haver um modo de fazer isso, só não sei msm.

Ainda tenho muita confusão com esses if, else e else if. De quanto pode usar, limites e etc. Mas de qualquer modo a solução acima me da uma luz nessa direção.

Obrigado!