Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desenvolvimento de Exercício para RPG

Estou fazendo um exercício após terminar a parte 3 do curso de C#, agora estou travado pensando em uma solução, onde após criado o personagem, deve-se escolher a raça do mesmo. Não sei se devo criar uma classe para isso ou implementar já na classe mãe personagem.

public abstract class Personagem
    {

        public string Nome { get; set; }
        public string Personalidade { get; set; }
        public short Idade { get; set; }
        public string Titulo { get; set; }
        public int TotalDePersonagens { get; set; }
        public int EXP { get; set; }
        public short Hp { get; set; }
        public short Mp { get; set; }


        public Personagem(string nome, short idade)
        {

            Nome = nome;
            Idade = idade;
            TotalDePersonagens++;
            Console.WriteLine("Personagem criado!");
        }

        public abstract short DefinirHp();

        public abstract short DefinirMp();

        public int ReceberEXP(int exp)
        {
            EXP = exp;
            exp += exp;
            if (exp < 100)
            {
                return exp;
            }
            else
            {
                Console.WriteLine("Você passou de nível!");
                exp = 0;
                return exp;
            }
        }

    }

As classes tem cada uma sua classe, assim consigo definir o Hp e as informações de cada, mas quero conseguir escolher também a Raça de cada um.

 public class Paladino : Personagem
    {

        public Paladino(string nome, short idade) : base(nome, idade)
        {
            Console.WriteLine("Paladino criado!");
            return;
        }

        public override short DefinirHp()
        {
           return Hp = 2000;
        }

        public override short DefinirMp()
        {
            return Mp = 1300;
        }
    }

Aceito sugestões de como posso resolver esse problema.

Obrigado!!!

1 resposta
solução!

Contornei o problema criando uma classe com um switch:

 public class Raça
    {

        public string Raças { get; set; }



        public void DefinirRaça(int menu, Personagem personagem)
        {

            Console.WriteLine("ESCOLHA SUA CLASSE: 1-HUMANO / 2-ELFO / 3-ORC / 4-ANÃO");
            switch (menu)
            {
                case 1:
                    personagem.Raças = "Humano";
                    Console.WriteLine("Raça escolhida: " + personagem.Raças);
                    break;

                case 2:
                    personagem.Raças = "Elfo";
                    Console.WriteLine("Raça escolhida: " + personagem.Raças);
                    break;

                case 3:
                    personagem.Raças = "Orc";
                    Console.WriteLine("Raça escolhida: " + personagem.Raças);
                    break;

                case 4:
                    personagem.Raças = "Anão";
                    Console.WriteLine("Raça escolhida: " + personagem.Raças);
                    break;
                default:
                    Console.WriteLine("Código de classe Inválida");
                    break;
            }
        }
    }
}

Personagem ficou dessa maneira

public abstract class Personagem : Raça
    {

        public string Nome { get; set; }
        public short Idade { get; set; }
        public short Hp { get; set; }
        public short Mp { get; set; }

        public Personagem(string nome, short idade)
        {
            Nome = nome;
            Idade = idade;
            Console.WriteLine("Personagem criado!");
        }

        public abstract short DefinirHp();

        public abstract short DefinirMp();



    }
}

E o main:

public class Program
    {
        static void Main(string[] args)
        {
            Raça raça = new Raça();

            Guerreiro Myto = new Guerreiro("Myto", 26);
            raça.DefinirRaça(1, Myto);

            Console.WriteLine("--------------------------------------------------");

            Arqueiro Lyria = new Arqueiro("Lyria", 615);
            raça.DefinirRaça(2, Lyria);

            Console.WriteLine("--------------------------------------------------");

            Bruxo Holl = new Bruxo("Holl", 59);
            raça.DefinirRaça(4, Holl);

            Console.WriteLine("--------------------------------------------------");

            Personagem Roy = new Paladino("Roy", 34);
            raça.DefinirRaça(3, Roy);

            Console.WriteLine("--------------------------------------------------");


            Console.WriteLine(Roy.Hp);

            Console.ReadLine();
        }
    }