2
respostas

Código

Menu();
void Menu()
{
    restart:
    Console.Clear();
    Console.WriteLine(@"

░██████╗░██╗░░░██╗███████╗░██████╗░██████╗  ████████╗██╗░░██╗███████╗
██╔════╝░██║░░░██║██╔════╝██╔════╝██╔════╝  ╚══██╔══╝██║░░██║██╔════╝
██║░░██╗░██║░░░██║█████╗░░╚█████╗░╚█████╗░  ░░░██║░░░███████║█████╗░░
██║░░╚██╗██║░░░██║██╔══╝░░░╚═══██╗░╚═══██╗  ░░░██║░░░██╔══██║██╔══╝░░
╚██████╔╝╚██████╔╝███████╗██████╔╝██████╔╝  ░░░██║░░░██║░░██║███████╗
░╚═════╝░░╚═════╝░╚══════╝╚═════╝░╚═════╝░  ░░░╚═╝░░░╚═╝░░╚═╝╚══════╝

███╗░░██╗██╗░░░██╗███╗░░░███╗██████╗░███████╗██████╗░
████╗░██║██║░░░██║████╗░████║██╔══██╗██╔════╝██╔══██╗
██╔██╗██║██║░░░██║██╔████╔██║██████╦╝█████╗░░██████╔╝
██║╚████║██║░░░██║██║╚██╔╝██║██╔══██╗██╔══╝░░██╔══██╗
██║░╚███║╚██████╔╝██║░╚═╝░██║██████╦╝███████╗██║░░██║
╚═╝░░╚══╝░╚═════╝░╚═╝░░░░░╚═╝╚═════╝░╚══════╝╚═╝░░╚═╝
");
    string boasVindas = "\nBem-vindo(a) ao Guess The Number\nNeste jogo eu pensarei em um número entre 1 e 100 e você deve tentar adivinhar que número é este.";
    string textoDinamico = "";
    foreach (char item in boasVindas)
    {
        Console.Clear();
        Console.WriteLine(@"

░██████╗░██╗░░░██╗███████╗░██████╗░██████╗  ████████╗██╗░░██╗███████╗
██╔════╝░██║░░░██║██╔════╝██╔════╝██╔════╝  ╚══██╔══╝██║░░██║██╔════╝
██║░░██╗░██║░░░██║█████╗░░╚█████╗░╚█████╗░  ░░░██║░░░███████║█████╗░░
██║░░╚██╗██║░░░██║██╔══╝░░░╚═══██╗░╚═══██╗  ░░░██║░░░██╔══██║██╔══╝░░
╚██████╔╝╚██████╔╝███████╗██████╔╝██████╔╝  ░░░██║░░░██║░░██║███████╗
░╚═════╝░░╚═════╝░╚══════╝╚═════╝░╚═════╝░  ░░░╚═╝░░░╚═╝░░╚═╝╚══════╝

███╗░░██╗██╗░░░██╗███╗░░░███╗██████╗░███████╗██████╗░
████╗░██║██║░░░██║████╗░████║██╔══██╗██╔════╝██╔══██╗
██╔██╗██║██║░░░██║██╔████╔██║██████╦╝█████╗░░██████╔╝
██║╚████║██║░░░██║██║╚██╔╝██║██╔══██╗██╔══╝░░██╔══██╗
██║░╚███║╚██████╔╝██║░╚═╝░██║██████╦╝███████╗██║░░██║
╚═╝░░╚══╝░╚═════╝░╚═╝░░░░░╚═╝╚═════╝░╚══════╝╚═╝░░╚═╝
");
        textoDinamico = textoDinamico + item.ToString();
        Console.Write($"{textoDinamico}\r");
        Thread.Sleep( 20 );
    }
    Thread.Sleep(1000);
    digitarNovamente:
    Console.Write("\nPreparado(a)? \nPressione [y] para começar ou [n] para fechar o jogo: ");
    
    char inicializador;

    try
    {
        inicializador = char.Parse(Console.ReadLine()!);
    }
    catch (Exception)
    {
        Console.WriteLine("O valor digitado não é válido, por favor, tente novamente...");
        goto digitarNovamente;
    }

    switch (inicializador)
    {
        case 'y': GuessTheNumber();
            goto restart;

        case 'n': Console.WriteLine("Fechar");
            break;

        default: Console.WriteLine("O valor digitado não é válido, por favor, tente novamente...");
            Thread.Sleep(2000);
            goto restart;
    }
}
int NumeroDoComputador()
{
    Random aleatorio = new Random();
    int escolhido = aleatorio.Next(1, 101);
    return escolhido;
}
void GuessTheNumber()
{
    int computador = NumeroDoComputador();
    Console.WriteLine("Pronto, tente adivinhar qual número eu pensei!");
    int contador = 0;
    while (contador < 5)
    {
        Console.Write("Palpite: ");
        int palpite = int.Parse(Console.ReadLine()!);
        if (palpite == computador)
        {
            Console.WriteLine($"Parabéns!! Você acertou, a resposta correta é {palpite}.");
            goto venceu;
        }
        else if (palpite > computador)
        {
            Console.WriteLine($"Hum... Não, o número que eu pensei é menor que {palpite}.");
        }
        else
        {
            Console.WriteLine($"Hum... Não, o número que eu pensei é maior que {palpite}.");
        }
        contador++;
    }
    Console.WriteLine($"Não foi dessa vez... O número que eu pensei foi {computador}");
    venceu:
    Console.Write("Pressione qualquer tecla para voltar ao Menu principal: ");
    Console.ReadKey();
}
2 respostas

Oi Luiz, tudo bem?

Gostaria de parabenizá-lo por completar essa atividade e agradecer por compartilhar seu código com a gente. Sua aplicação é impressionante, e a forma como você criou um menu de boas-vindas dinâmico é muito criativa.

A animação do logotipo do jogo na tela de boas-vindas é um toque especial e torna a experiência do usuário mais atraente. A progressão do texto é uma maneira única de introduzir o jogo aos jogadores.

Seu código está bem organizado, e as funções são nomeadas de forma significativa, facilitando a leitura e a manutenção. A inclusão de manipulação de erros ao solicitar que o usuário pressione 'y' ou 'n' para começar ou fechar o jogo mostra a atenção aos detalhes.

O jogo em si é divertido e desafiador, e o uso do loop while para permitir até 5 tentativas de adivinhar o número é uma escolha inteligente. A mensagem exibida ao final do jogo é informativa e amigável.

No geral, seu trabalho é impressionante, e você demonstrou habilidades sólidas de programação e criatividade. Continue aprimorando suas habilidades e criando projetos incríveis como este.

Um abraço e bons estudos.

Uma pergunta, amigo! como você fez para que o texto fizesse esse delay de escrita ? Estava muito curioso para poder colocar no meu código também! Uma dica de melhoria para ficar mais F0D@ do que já ficou, é estilizar também as letras dos outputs, acho que caberia com a sua temática! Sucesso!