Fala, Emili! Tudo bom?
Agradeço por trazer sua solução para o fórum!
Curti demais como trabalhou a estrutura de repetição do-while para manter o jogo ativo com C#, entendeu perfeitamente a importância da validação de entrada com TryParse para evitar erros e usou bem o Random para gerar o número secreto de forma dinâmica.
Algo bem legal para complementar é adicionar um contador de tentativas, mostrando ao jogador quantas vezes ele precisou até acertar. Dessa maneira:
Random aleatorio = new();
int numeroMaquina = aleatorio.Next(1, 101);
int numeroInserido;
int tentativas = 0;
do
{
Console.Write("Tente adivinhar o número: ");
string? linha = Console.ReadLine();
if (!int.TryParse(linha, out numeroInserido))
{
Console.WriteLine("Entrada inválida. Digite um número inteiro.");
continue;
}
tentativas++;
if (numeroInserido == numeroMaquina)
{
Console.WriteLine($"Parabéns, você acertou em {tentativas} tentativa(s)!");
}
else if (numeroInserido < numeroMaquina)
{
Console.WriteLine("\nO número é maior! Tente novamente: ");
}
else
{
Console.WriteLine("\nO número é menor! Tente novamente: ");
}
}
while (numeroInserido != numeroMaquina);
Isso faz com que o jogo fique mais divertido e dê um feedback extra ao jogador.
E algumas boas práticas que você pode adotar são:
- Exploração: permitir que o usuário defina o intervalo de números.
- Legibilidade: usar nomes de variáveis mais descritivos, como
numeroSecreto. - Generalização: encapsular a lógica em métodos, como
jogar(), para facilitar manutenção.
Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.
Ah, uma pergunta: você prefere evoluir esse jogo para incluir níveis de dificuldade com diferentes intervalos ou adicionar um placar que registre as melhores tentativas?
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!