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!

1
resposta

Sei que pedia outra coisa, mas quis dificultar de proposito

using System.Threading;
int numeroTabuada;
int vidas = 5;

Console.WriteLine("Bem vindo ao jogo de matematica\n");


do
{
    Console.WriteLine("Digite um número entre 1 e 10:");
    numeroTabuada = int.Parse(Console.ReadLine());

    if (numeroTabuada < 1 || numeroTabuada > 10)
    {
        Console.WriteLine("Número inválido! Tente novamente.");
    }
} while (numeroTabuada < 1 || numeroTabuada > 10);

Console.WriteLine($"Você escolheu a tabuada do {numeroTabuada}");
Console.WriteLine("Começando Jogo em 2");
Thread.Sleep(1000);
Console.WriteLine("Começando Jogo em 1");
Thread.Sleep(1000);
Console.Clear();

for (int i = 1; i <= 10; i++)
{
    int resposta;
    int respostaCorreta = numeroTabuada * i;
    do
    {
        Console.WriteLine($"Quanto é {numeroTabuada} x  {i} ?");
        resposta = int.Parse(Console.ReadLine());
        if (resposta != respostaCorreta)
        {
            vidas--;
            if (vidas == 0) break;
            Console.WriteLine
                ($"Resposta incorreta, você possui apenas {vidas} {(vidas > 1 ? "vidas restantes" : "vida restante")}");
            Console.WriteLine("Repetindo pergunta em 2");
            Thread.Sleep(1000);
            Console.WriteLine("Repetindo pergunta em 1");
            Thread.Sleep(1000);
            Console.Clear();
        }
    } while (resposta != respostaCorreta);
    
    if (vidas == 0) break;
    
    Console.WriteLine("Acertou!");
    vidas++;
    Console.WriteLine("Proxima pergunta em 2");
    Thread.Sleep(1000);
    Console.WriteLine("Proxima pergunta em 1");
    Thread.Sleep(1000);
    Console.Clear();
}

if (vidas == 0)
{
    Console.WriteLine("voce perdeu!");
}
else
{
    Console.WriteLine("voce Ganhou!");
}
1 resposta

Olá, Isac. Como vai?

Obrigado por compartilhar sua solução. Embora a proposta da atividade fosse apenas praticar os operadores de incremento e decremento em um exemplo simples de controle de vidas, achei interessante que você tenha ampliado o desafio e desenvolvido um pequeno jogo de tabuada utilizando os mesmos conceitos.

O controle de vidas funciona corretamente por meio do operador de decremento, a validação da escolha da tabuada está adequada e a estrutura com laços de repetição mantém o fluxo do jogo organizado. Além disso, o uso de Thread.Sleep() e Console.Clear() contribui para deixar a experiência mais dinâmica.

Quais outras funcionalidades você pretende adicionar para tornar esse jogo de tabuada ainda mais desafiador?

Parabéns pela iniciativa de ir além da proposta original. Continue compartilhando seus projetos. O fórum está à disposição para acompanhar sua evolução e ajudar sempre que necessário.

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