看你如何加点了
要是升级加固定的点 写个固定的函数就行 反正都一样的
把对应角色的ID保存正确了就行
++是否要重载完全是个人爱好

解决方案 »

  1.   

    问题是什么?难道我语文不够好
      

  2.   

    就是编个程序实现这个功能那,能我做下吗??
      

  3.   

    不是做游戏,现在还没有那么高水平,是老师安排的作业,做不出来,你帮我写下实现这功能的程序吗
      

  4.   

    using System;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 初始化
                Hero hero = new Hero("ABC", 2, 50, 100);
                Console.WriteLine(hero.DisplayCurrentStatus());            // 升级
                hero++;
                Console.WriteLine(hero.DisplayCurrentStatus());
            }        public class Hero
            {
                public Hero(string name, int level, int health, int mana)
                {
                    m_Name = name;
                    m_Level = level;
                    // 英雄的最大血和内力都与级别相关
                      // 这个英雄是个魔法师型的。 ^_^
                    m_MaxHealth = 50 + level * 30;
                    m_MaxMana = 100 + level * 50;
                    m_Health = health;
                    m_Mana = mana;
                }            public string Name
                {
                    get { return m_Name; }
                }            public int Level
                {
                    get { return m_Level; }
                }            public int MaxHealth
                {
                    get { return m_MaxHealth; }
                }            public int MaxMana
                {
                    get { return m_MaxMana; }
                }            public int Health
                {
                    get { return m_Health; }
                    set
                    {
                        // 如果更复杂可以当英雄血小于等于0时死亡
                        if (value > m_MaxHealth)
                            m_Health = m_MaxHealth;
                        else
                            m_Health = value;
                    }
                }            public int Mana
                {
                    get { return m_Mana; }
                    set
                    {
                        if (value > m_MaxMana)
                            m_Mana = m_MaxMana;
                        else
                            m_Mana = value;
                    }
                }            public static Hero operator ++(Hero hero)
                {
                    return new Hero(
                        hero.Name,
                        hero.Level + 1,
                        hero.MaxHealth + 30,
                        hero.MaxMana + 50);            }            public string DisplayCurrentStatus()
                {
                    string result = string.Empty;                result += string.Format("Hero name: {0} ", m_Name);
                    result += string.Format("Hero level: {0} ", m_Level);
                    result += string.Format("Hero health: {0} ", m_Health);
                    result += string.Format("Hero mana: {0} ", m_Mana);                return result;
                }            private string m_Name;
                private int m_Health;
                private int m_MaxHealth;
                private int m_Mana;
                private int m_MaxMana;
                private int m_Level;
            }
        }
    }