Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] [Sugestão] DESAFIO: HORA DA PRATICA

Após finalizar o curso inicial de JavaScript, busquei me aprimorar e desbravar novas linhas de códigos além do que fora ensinado durante as aulas. Segue abaixo como ficou meu app.js para o jogo de advinhar o número secreto:

Gostaria que os mais experientes avaliem e me digam se estou no caminho certo, seguindo as melhores práticas. Toda sugestão é bem vinda :)

/* Mensagem de boas vindas ao jogo do número secreto.*/
alert('Boas vindas ao jogo do número secreto');

/* Perguntar o nome do jogador e armazenar em uma variável.*/
let nome = prompt('Primeiro, me diga o seu nome:');
alert(`Certo ${nome}. Vamos começar!`);
console.log(`Nome do jogador: ${nome}`); // Exibe o nome do jogador.

/* Definir o nível de dificuldade do jogo.*/
let Dificuldade = parseInt(prompt('Escolha um número para definir o nível de dificuldade do jogo: \n1 - Fácil.\n2 - Médio\n3 - Difícil')); // Usando o parseInt para converter a string em número.

let DificuldadePalavra = Dificuldade == 1 ? 'Fácil' : Dificuldade == 2 ? 'Médio' : Dificuldade == 3 ? 'Difícil' : 'Inválido';
alert(`Dificuldade escolhida: ${DificuldadePalavra}`);

/* Define o fator de multiplicação do nível de dificuldade.*/
let nivel;
if (Dificuldade == 1) {
    nivel = 10;
    console.log(`Dificuldade escolhida: ${Dificuldade} - ${DificuldadePalavra}\nO Fator multiplicador será de: ${nivel}`); // Exibe dificuldade e fator multiplicador.
} else if (Dificuldade == 2) {
    nivel = 100;
    console.log(`Dificuldade escolhida: ${Dificuldade} - ${DificuldadePalavra}\nO Fator multiplicador será de: ${nivel}`); // Exibe dificuldade e fator multiplicador.
} else if (Dificuldade == 3) {
    nivel = 1000;
    console.log(`Dificuldade escolhida: ${Dificuldade} - ${DificuldadePalavra}\nO Fator multiplicador será de: ${nivel}`); // Exibe dificuldade e fator multiplicador.
} else {
    alert('Nível de dificuldade e fator inválidos');
}

/* Gerar um número aleatório entre 1 e o nível de dificuldade.*/
let numeroSecreto = parseInt(Math.random() * nivel + 1);
console.log(`Numero secreteo gerado é:${numeroSecreto}`); // Exibe o número secreto no criado no console.
let chute; // Variável para armazenar o chute do jogador.
let tentativas = 1; // Variável para armazenar a quantidade de tentativas.

/* Enquanto o chute for diferente do número secreto, perguntar ao jogador o número que ele deseja chutar.*/
while (chute != numeroSecreto) {
    chute = prompt(`Escolha um número entre 1 e ${nivel}`);
    // se chute for igual ao número secreto
    if (chute == numeroSecreto) {
        break;
    } else {
        if (chute > numeroSecreto) {
            alert(`O número secreto é menor que ${chute}`);
        } else {
            alert(`O número secreto é maior que ${chute}`);
        }
        tentativas++; // Incrementa a quantidade de tentativas.
    }
}

let palavraTentativa = tentativas > 1 ? 'tentativas' : 'tentativa';
alert(`Isso ai! Você descobriu o número secreto ${numeroSecreto} com ${tentativas} ${palavraTentativa}.`);
alert(`Obrigado por jogar ${nome}!`);

/*Fim do código.*/
1 resposta
solução!

Oi Guilherme, tudo bem? 😊

Parabéns pela iniciativa de ir além do que foi ensinado no curso e criar seu próprio jogo de adivinhação! 👏

É ótimo ver seu empenho em aprimorar suas habilidades em JavaScript.

Analisando seu código, percebo que você está no caminho certo e aplicando boas práticas de programação.

Seu código está bem estruturado, com comentários claros e variáveis com nomes descritivos.

Você utilizou corretamente estruturas condicionais (if, else if, else) e de repetição (while).

Além disso, você implementou a lógica do jogo de forma eficiente, com a escolha do nível de dificuldade e a contagem de tentativas.

Uma pequena sugestão seria usar a função parseInt() para garantir que o valor digitado pelo usuário seja um número inteiro, mesmo ele digitando corretamente.

Para deixar seu código mais enxuto, você pode usar o operador de incremento ++ na linha que você escreveu tentativas = tentativas + 1;.

No geral, seu código está excelente e demonstra seu entendimento dos conceitos de lógica de programação com JavaScript. 😉

Continue praticando e explorando novas possibilidades! 🧐

🎓 Para saber mais: