2
respostas

minha solução:

int numero = 0;
int numeroAleatorio = 0;
int opcao = 0;

Random random = new Random();

void JogoNumeroAleatorio()
{
    while (true)
    {
        Console.WriteLine("Bem vindo ao jogo de adivinhação!");
        Console.WriteLine();
        Console.WriteLine("Escolha uma opção no menu abaixo:");
        Console.WriteLine("1 - Novo Jogo");
        Console.WriteLine("0 - Sair!");
        Console.Write("Digite uma opção: ");
        opcao = int.Parse(Console.ReadLine());
        Console.WriteLine();

        switch (opcao)
        {
            case 1:
                Console.Write("Escolha um número aleatório entre 0 e 100: ");
                numero = int.Parse(Console.ReadLine());

                if (numero < 0 || numero > 100)
                {
                    Console.WriteLine("O número digitado está fora do intervalo de 0 a 100!");
                    Console.WriteLine("O número digitado foi: " + numero);
                    break;
                }

                numeroAleatorio = random.Next(0, 101);

                if (numero == numeroAleatorio)
                {
                    Console.WriteLine("Parabéns! Você acertou o número!");
                }
                else if (numero > numeroAleatorio)
                {
                    Console.WriteLine("O número digitado é maior que o número sorteado!");
                }
                else
                {
                    Console.WriteLine("O número digitado é menor que o número sorteado!");
                }

                Console.WriteLine("O número digitado foi: " + numero);
                Console.WriteLine("O número sorteado foi: " + numeroAleatorio);
                break;

            case 0:
                Console.WriteLine("Obrigado por jogar! Até a próxima!");
                return;

            default:
                Console.WriteLine("Opção inválida! Tente novamente.");
                break;
        }

        Console.WriteLine();
    }
}

JogoNumeroAleatorio();

unica coisa que não fiz o tratamento de erro com exceção, para o tratamento de String (A linguagem lembra muito python e java).

2 respostas

Bom dia Paulo, tudo bom?

Você está no caminho certo com o seu jogo de adivinhação! No entanto, notei que você mencionou não ter feito o tratamento de exceções para entradas inválidas, como strings. Isso é importante para evitar que o programa trave caso o usuário digite algo que não seja um número. Vamos adicionar esse tratamento ao seu código.

Você pode usar um bloco try-catch para capturar exceções quando a conversão de string para inteiro falhar. Aqui está um exemplo de como você pode fazer isso:

void JogoNumeroAleatorio()
{
    while (true)
    {
        Console.WriteLine("Bem vindo ao jogo de adivinhação!");
        Console.WriteLine();
        Console.WriteLine("Escolha uma opção no menu abaixo:");
        Console.WriteLine("1 - Novo Jogo");
        Console.WriteLine("0 - Sair!");
        Console.Write("Digite uma opção: ");
        
        try
        {
            opcao = int.Parse(Console.ReadLine());
        }
        catch (FormatException)
        {
            Console.WriteLine("Entrada inválida! Por favor, digite um número.");
            continue;
        }
        
        Console.WriteLine();

        switch (opcao)
        {
            case 1:
                Console.Write("Escolha um número aleatório entre 0 e 100: ");
                
                try
                {
                    numero = int.Parse(Console.ReadLine());
                }
                catch (FormatException)
                {
                    Console.WriteLine("Entrada inválida! Por favor, digite um número.");
                    continue;
                }

                if (numero < 0 || numero > 100)
                {
                    Console.WriteLine("O número digitado está fora do intervalo de 0 a 100!");
                    Console.WriteLine("O número digitado foi: " + numero);
                    break;
                }

                numeroAleatorio = random.Next(0, 101);

                if (numero == numeroAleatorio)
                {
                    Console.WriteLine("Parabéns! Você acertou o número!");
                }
                else if (numero > numeroAleatorio)
                {
                    Console.WriteLine("O número digitado é maior que o número sorteado!");
                }
                else
                {
                    Console.WriteLine("O número digitado é menor que o número sorteado!");
                }

                Console.WriteLine("O número digitado foi: " + numero);
                Console.WriteLine("O número sorteado foi: " + numeroAleatorio);
                break;

            case 0:
                Console.WriteLine("Obrigado por jogar! Até a próxima!");
                return;

            default:
                Console.WriteLine("Opção inválida! Tente novamente.");
                break;
        }

        Console.WriteLine();
    }
}

JogoNumeroAleatorio();

Com esse ajuste, o programa irá continuar funcionando mesmo que o usuário insira uma string ou qualquer entrada inválida. Espero ter ajudado e bons estudos!

Top de mais valeu a dica!!!!