Fala pessoal tudo bem: eu fiquei uma semana tirando minhas dúvidas e refazendo o codigo do desafio. Cheguei as seguintes conclusões:
Jogo do Número Secreto com loop manual:
alert('Boas vindas ao jogo do número secreto');
// Definimos o número secreto manualmente
let numeroSecreto = 5;
console.log('Valor do número secreto (fixo): ' + numeroSecreto);
let tentativas = 1; // Contador de tentativas, começa em 1
// Define a função que contém a lógica principal do jogo
function jogarAdivinhacao() {
let chute = prompt('Escolha um número entre 1 e 10');
console.log('Valor do número chute: ' + chute);
// Condição para verificar se o chute está correto
if (chute == numeroSecreto) {
// Mensagem final de acerto
if (tentativas > 1) {
alert(`Isso aí! Você descobriu o número secreto ${numeroSecreto} com ${tentativas} tentativas.`);
} else {
alert(`Isso aí! Você descobriu o número secreto ${numeroSecreto} na primeira tentativa.`);
}
} else {
// Se errou, dá uma dica
if (chute > numeroSecreto) {
alert(`O número secreto é MENOR que ${chute}`);
} else {
alert(`O número secreto é MAIOR que ${chute}`);
}
// Incrementa o contador de tentativas
tentativas++;
// Chama a própria função novamente para uma nova tentativa
jogarAdivinhacao();
}
}
Jogo do Número secreto com loop ''while'':
alert('Boas vindas ao jogo do número secreto');
// Aqui definimos o número secreto manualmente
let numeroSecreto = 5; // Você pode mudar este número para testar!
console.log('Valor do número secreto (fixo): ' + numeroSecreto);
let chute;
let tentativas = 1; // Contador de tentativas, começa em 1
// Loop principal do jogo: continua enquanto o chute for diferente do número secreto usando a função while
while (chute != numeroSecreto) {
chute = prompt('Escolha um número entre 1 e 10');
console.log('Valor do número chute: ' + chute);
// Condição para verificar se o chute está correto
if (chute == numeroSecreto) {
// Sai do loop se acertar. O alerta de acerto virá depois do loop.
break;
} else {
// Se errou, dá uma dica
if (chute > numeroSecreto) {
alert(`O número secreto é MENOR que ${chute}`);
} else {
alert(`O número secreto é MAIOR que ${chute}`);
}
// Incrementa o contador de tentativas
tentativas++;
}
}
// Mensagem final de acerto, exibida após o loop
if (tentativas > 1) {
alert(`Isso aí! Você descobriu o número secreto ${numeroSecreto} com ${tentativas} tentativas.`);
} else {
// Caso o jogador acerte na primeira tentativa
alert(`Isso aí! Você descobriu o número secreto ${numeroSecreto} na primeira tentativa.`);
}
Jogo do Número Secreto usando loop ''while'' e ''parseInt(Math.random() );''
alert('Boas vindas ao jogo do número secreto');
// Gera um número secreto aleatório entre 1 e 10
let numeroSecreto = parseInt(Math.random() * 10 + 1);
console.log('Valor do número secreto (apenas para depuração): ' + numeroSecreto);
let chute;
let tentativas = 1; // Contador de tentativas, começa em 1
// Loop principal do jogo: continua enquanto o chute for diferente do número secreto
while (chute != numeroSecreto) {
chute = prompt('Escolha um número entre 1 e 10');
console.log('Valor do número chute: ' + chute);
// Condição para verificar se o chute está correto
if (chute == numeroSecreto) {
// Sai do loop se acertar. O alerta de acerto virá depois do loop.
break;
} else {
// Se errou, dá uma dica
if (chute > numeroSecreto) {
alert(`O número secreto é MENOR que ${chute}`);
} else {
alert(`O número secreto é MAIOR que ${chute}`);
}
// Incrementa o contador de tentativas
tentativas++;
}
}
// Mensagem final de acerto, exibida após o loop
if (tentativas > 1) {
alert(`Isso aí! Você descobriu o número secreto ${numeroSecreto} com ${tentativas} tentativas.`);
} else {
// Caso o jogador acerte na primeira tentativa
alert(`Isso aí! Você descobriu o número secreto ${numeroSecreto} na primeira tentativa.`);
}
Nota: let numeroSecreto = parseInt(Math.random() * 10 + 1); define o número secreto. Math.random() gera um decimal entre 0 e 1. Multiplicar por 10 (* 10) transforma-o em um número entre 0 e 9. Somar 1 (+ 1) o eleva para o intervalo de 1 a 10. Por fim, parseInt() remove as casas decimais, garantindo um número inteiro aleatório de 1 a 10 para o jogo.