1
resposta

[Projeto] Resposta do exercicio - Jogo de adivinhação

To migrando do Python pro C# e ainda to meio confuso em alguns pontos, mas vamos que vamos

Random randNum = new Random();
int numeroAleatorio = randNum.Next(1, 101);
Console.WriteLine("Bem vindo ao jogo do adivinha o número, chute um número de 1 a 100! Dúvido acertar!");

int tentativaNumero;
while (true)
{
    string entrada = Console.ReadLine();
    if (int.TryParse(entrada, out tentativaNumero) && tentativaNumero >= 1 && tentativaNumero <= 100)
    {
        // Verifica a tentativa do usuário
        if (tentativaNumero > numeroAleatorio)
        {
            Console.WriteLine("Errou feio, errou rude! Mas uma dica, o número é menor amigo!");
        }
        else if (tentativaNumero < numeroAleatorio)
        {
            Console.WriteLine("Meu amigo, foi quase! Porém o número é maior.");
        }
        else
        {
            Console.WriteLine("ACERTO MISERAVI!");
            break; // Sai do loop se o usuário acertar
        }
    }
    else
    {
        Console.WriteLine("Cê não me engana não amigo, é número de 1 a 100. Escreve direito sô!");
    }
}
1 resposta

Bom dia Vinicius, como vai?

Maravilha que você está se aventurando no C#, e ai curtindo a linguagem? Seu código está ficando muito bom. Porém, a atividade pede que você utilize um laço do-while em vez de um while. Vou escrever um exemplo:

Random randNum = new Random();
int numeroAleatorio = randNum.Next(1, 101);
Console.WriteLine("Bem vindo ao jogo do adivinha o número, chute um número de 1 a 100! Dúvido acertar!");

int tentativaNumero;
bool acertou = false;

do
{
    string entrada = Console.ReadLine();
    if (int.TryParse(entrada, out tentativaNumero) && tentativaNumero >= 1 && tentativaNumero <= 100)
    {
        // Verifica a tentativa do usuário
        if (tentativaNumero > numeroAleatorio)
        {
            Console.WriteLine("Errou feio, errou rude! Mas uma dica, o número é menor amigo!");
        }
        else if (tentativaNumero < numeroAleatorio)
        {
            Console.WriteLine("Meu amigo, foi quase! Porém o número é maior.");
        }
        else
        {
            Console.WriteLine("ACERTO MISERAVI!");
            acertou = true; // Define a variável como verdadeira para sair do loop
        }
    }
    else
    {
        Console.WriteLine("Cê não me engana não amigo, é número de 1 a 100. Escreve direito sô!");
    }
} while (!acertou);

Só lembrando a diferença aqui é que o do-while garante que o bloco de código dentro do do será executado pelo menos uma vez antes de verificar a condição no while. Isso se encaixa bem para jogos onde o usuário deve sempre fazer pelo menos uma tentativa.

Espero ter ajudado e bons estudos!