1
resposta

[Sugestão] Catalogo de jogos

Utilizei uma forma de dividir as listas de jogos por nomes de empresas, além de adicionar funcionalidades para possíveis jogos gratuitos ou de unidades indeterminadas.

Jogos.cs

class Jogos
{
    //Construtor de Jogo.
    public Jogos(string nome, string tema, int unidades = 0, int preco = 0)
    {
        Nome = nome;
        Tema = tema;
        Unidades = unidades;
        Preco = preco;
    }
    public string Nome { get; }
    public string Tema { get; }
    public int Unidades { get; }
    public int Preco { get;}
}

CatalogoDeJogos.cs

class CatalogoDeJogos
{
    //Lista de jogos.
    private List<Jogos> ListaDeJogos = new List<Jogos>();

    //Construtor que leva o nome da empresa.
    public CatalogoDeJogos(string nome)
    {
        Nome = nome;
    }
    public string Nome { get; }

    //Quantidade variável para adaptar a quantidade de jogos.
    private int Quantidade { get => ListaDeJogos.Count(); 
    }
    //Adiciona um jogo a lista.
    public void AdicionarJogo(Jogos jogo)
    {
        ListaDeJogos.Add(jogo);
    }
    //Exibe o catalogo com todos os jogos de uma empresa específica.
    public void ExibirCatalogo()
    {
        //Cabeçalho do texto.
        Console.WriteLine($"Exibindo Catalogo da empresa: {this.Nome}");
        Console.WriteLine($"Quantidade de jogos: {this.Quantidade}\n");

        //Exibe as informações de cada jogo.
        foreach (Jogos jogo in ListaDeJogos)
        {
            Console.WriteLine($"Nome do jogo: {jogo.Nome}");
            Console.WriteLine($"Tema: {jogo.Tema}");
            if (jogo.Preco == 0)
            {
                Console.WriteLine("Esse jogo possui unidades ilimitadas");
            }
            else
            {
                Console.WriteLine($"Preço: R${jogo.Preco}");
            }
            if (jogo.Unidades == 0)
            {
                Console.WriteLine("Esse jogo é gratuito");
            }
            else { 
                Console.WriteLine($"Unidades: {jogo.Unidades}");
            }
            Console.WriteLine("\n");
        }
    }
}

Program.cs

//Instâncias de jogos.
Jogos jogo1 = new Jogos("Elder Ring", "SoulsLike", 24, 300);
Jogos jogo2 = new Jogos("Dark Souls", "SoulsLike", 33, 120);
Jogos jogo3 = new Jogos("OverWatch 2","Tiro Competitivo");

//Adição de jogos à lista e exibição do catálogo completo. 
CatalogoDeJogos catalogoFromSoftware = new CatalogoDeJogos("FromSoftWare");
catalogoFromSoftware.AdicionarJogo(jogo1);
catalogoFromSoftware.AdicionarJogo(jogo2);
catalogoFromSoftware.ExibirCatalogo();

//Adição de um jogo gratuito e com unidades ilimitadas.
CatalogoDeJogos catalogoBlizzard = new CatalogoDeJogos("Blizzard");
catalogoBlizzard.AdicionarJogo(jogo3);
catalogoBlizzard.ExibirCatalogo();

Espero que tenha gostado!

1 resposta

Oii, Lorenzo. Tudo bem?

Parabéns pelo seu trabalho no código! A estrutura geral tá bastante clara e bem organizada. Você fez um ótimo trabalho ao dividir as listas de jogos por empresas e ao adicionar funcionalidades para jogos gratuitos e com unidades ilimitadas. Isso realmente melhora a flexibilidade e a usabilidade do seu código.

Continue assim e continue praticando.

Um abraço e bons estudos.