1
resposta

Faça como eu fiz: Primeiro Jogo com C#

Fiz o jogo de adivinhação com valor fixo, sem olhar a opinião do instrutor por ser um curso introdutório na linguagem, conheço a lógica de programação, mas quero ver como funciona a linguagem. Encontrei essa solução, e implementei o switch bem no final por ser um requisito do programa, mas antes, os avisos se o número é maior/ou menor apareciam nos ifs, porém nesse caso o sistema ficaria sem a estrutura switch.

int numeroDigitado = 0;

void MenuPrograma()
{
    Console.WriteLine("--- Menu Inicial ---");
    Console.WriteLine("Jogo de adivinhação");
}

void VerificarNumero()
{
    int numeroCorreto = 65;
    int maiorValor = 100;
    int menorValor = 1;
    bool numeroDigitadoMenor = false;
    bool numeroDigitadoMaior = false;
   
    do
    {
        bool numeroInvalido = false;
        Console.Write($"Digite um número de {menorValor} a {maiorValor}: ");
        string numero = Console.ReadLine()!;
        numeroDigitado = int.Parse(numero);
        
        while(numeroDigitado < menorValor || numeroDigitado > maiorValor)
        {
            Console.WriteLine($"Número Inválido, digite um valor entre {menorValor} a {maiorValor}!!!");
            numeroInvalido = true;
            break;
        }

        if (numeroDigitado != numeroCorreto && numeroInvalido==false)
        {
            Console.WriteLine("Você não acertou o número correto, tente novamente.");

            if (numeroDigitado > numeroCorreto)
            {
                if (numeroDigitado<maiorValor)
                {
                    maiorValor = numeroDigitado;
                }
                
                numeroDigitadoMaior = true;
                numeroDigitadoMenor = false;
            }
            else if (numeroDigitado < numeroCorreto)
            {
                // Console.WriteLine($"O número correto é maior que: {numeroDigitado}");
                if (numeroDigitado>menorValor)
                {
                    menorValor = numeroDigitado;
                }
                numeroDigitadoMaior = false;
                numeroDigitadoMenor = true;
            }
            switch (numeroDigitadoMaior)
            {
                case true:
                    Console.WriteLine($"O número correto é menor que: {numeroDigitado}");
                    break;
                case false:
                    Console.WriteLine($"O número correto é maior que: {numeroDigitado}");
                    break;
            }
        }
    } while (numeroDigitado != numeroCorreto);
    Console.WriteLine("Você acertou o número correto, parabéns!!!");
    Console.WriteLine($"O número secreto era o {numeroCorreto}!!!");
}

MenuPrograma();
VerificarNumero();

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Paulo! Como vai?
Agradeço por compartilhar.

Ficou bem interessante a forma como você estruturou o jogo, principalmente por explorar o uso do switch de forma criativa para cumprir o requisito da atividade. Isso mostra que você já domina bem a lógica e está focado em entender o comportamento da linguagem C# na prática.

Uma dica interessante para o futuro é usar o método Random para gerar o número secreto dinamicamente. Assim, o jogo fica mais desafiador a cada execução.


Random random = new Random();
int numeroCorreto = random.Next(1, 101);
Console.WriteLine("Tente adivinhar o número!");
Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!