英雄pk理解面向对象中的this指针概念

class Hero
    {
        public int ATN { get; set; }
        public int DEF { get; set; }
        public int HP { get; set; }
        public string Name { get; set; }

        public bool Attack(Hero target)
        {
            bool hasDead = false;
            Random r = new Random();

            int damage = r.Next(this.ATN - target.DEF); 
            target.HP -= damage;
            Console.WriteLine("{0}向{1}发动攻击,造成{2}点伤害!", this.Name, target.Name, damage, target.HP);
            if (target.HP <= 0)
            {
                Console.WriteLine("{0}已经死亡!", target.Name);
                target.HP = 0;
                hasDead = true;
            }
            Console.WriteLine("{0}生命值变为{1}", target.Name, target.HP);
            return hasDead;
        }

        static void Main()
        {
            Hero A = new Hero() { Name = "卡特琳娜", ATN = 100, DEF = 50, HP = 300 },
                B = new Hero() { HP = 300, Name = "盖伦", ATN = 100, DEF = 50 };
            Console.WriteLine("---------------------\n      英雄联盟\n---------------------");
            while (A.HP >= 0 && B.HP >= 0)
            {
                if (B.Attack(A))
                {
                    Console.WriteLine("{0}获取胜利", B.Name);
                    break;
                }
                System.Threading.Thread.Sleep(500);
                if (A.Attack(B))
                {
                    Console.WriteLine("{0}获取胜利", A.Name);
                    break;
                }
                System.Threading.Thread.Sleep(500);
            }
            Console.WriteLine("请按任意键继续。。。");
            Console.ReadKey();
        }
    }

 

posted @ 2017-03-12 13:33  际为软件事务所  阅读(337)  评论(0编辑  收藏  举报