Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Faça como eu fiz: primeiro jogo com C#

Segue minha resolução:

Random aleatorio = new();
int numeroMaquina = aleatorio.Next(1, 101);
int numeroInserido;

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;
    }

    if (numeroInserido == numeroMaquina)
    {
        Console.WriteLine("Parabéns, Você acertou!");
    }
    else if (numeroInserido < numeroMaquina)
    {
        Console.WriteLine("\nO número é maior! Tente novamente: ");
    }
    else
    {
        Console.WriteLine("\nO número é menor! Tente novamente: ");
    }
}
while (numeroInserido != numeroMaquina);
1 resposta
solução!

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!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!