英雄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();
        }
    }
时间: 2024-11-05 19:38:29

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

全面理解面向对象的JavaScript

转载:http://justcoding.iteye.com/blog/2019293 原文:http://www.ibm.com/developerworks/cn/web/1304_zengyz_jsoo/index.html?ca=drs-#major6 前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学习和深入理解.所以,经常出现的情况是,

深入全面理解面向对象的 JavaScript

深入全面理解面向对象的 JavaScript (原著: 曾 滢, 软件工程师, IBM,2013 年 4 月 17 日) JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征.本文将回归面向对象本意,从对语言感悟的角度阐述为什么 JavaScript 是一门彻底的面向对象的语言,以及如何正确地使用这一特性. 前言 当今 JavaScript 大行其道,各种应用

面向对象中的原型和原型链

今天我们要说的是面向对象中的原型链,在说原型链之前,我们先一步一步来了解一下面向对象中的一些基本概念. 一.类 类是指具有相同特征(属性)和行为(方法)的事物的集合. 二.对象 对象的目的实际上是将具有相同属性和行为的代码整合在一起,方便我们的管理. 起初,我们是这样来创建一个对象的, js代码: var person1 = { name:"张三", age:18, height:165, walk:function(){ console.log("i can walk!&q

转载:全面理解面向对象的 JavaScript

来源:DeveloperWorks – 曾滢著 简介: JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征.本文将回归面向对象本意,从对语言感悟的角度阐述为什么 JavaScript 是一门彻底的面向对象的语言,以及如何正确地使用这一特性. 前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaSc

彻底理解链表中为何使用二级指针或者一级指针的引用

 彻底理解链表中为何使用二级指针或者一级指针的引用 http://blog.csdn.net/u012434102/article/details/44886339 struct _node  {  void*data;  struct_node *prior;  struct_node *next;  } typedef_node Node;   //给这个_node结构体定义一个别名,任何使用_node的地方都可以用Node来替换 typedef_node* PNode;   //给这个指向

深入理解JavaScript中创建对象模式的演变(原型)

创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式: Object构造函数和对象字面量方法 工厂模式 自定义构造函数模式 原型模式 组合使用自定义构造函数模式和原型模式 动态原型模式.寄生构造函数模式.稳妥构造函数模式 第一部分:Object构造函数和对象字面量方法 我之前在博文<javascript中对象字面量的理解>中讲到过这两种方法,如何大家不熟悉,可以点进去看一看回顾一下.它们的优点是用来创建单个的对象非常方

转载 深入理解JavaScript中的this关键字

转载原地址: http://www.cnblogs.com/rainman/archive/2009/05/03/1448392.html 深入理解JavaScript中的this关键字 1. 一般用处 2. this.x 与 apply().call() 3. 无意义(诡异)的this用处 4. 事件监听函数中的this 5. 总结 在JavaScript中this变量是一个令人难以摸清的关键字,this可谓是非常强大,充分了解this的相关知识有助于我们在编写面向对象的JavaScript程

perl5 第十二章 Perl5中的引用/指针

第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用  子程序模板七.数组与子程序八.文件句柄的引用 一.引用简介    引用就是指针,可以指向变量.数组.哈希表(也叫关联数组)甚至子程序.Pascal或C程序员应该对引用(即指针)的概念很熟悉,引用就是某值的地址,对其的使用则取决于程序员和语言的规定.在Perl中,可以把引用称为指针,二者是通用的,无差别的.引用在创建复杂数据方面十分有用

iOS runtime探究(一): 从runtime开始理解面向对象的类到面向过程的结构体

你要知道的runtime都在这里 转载请注明出处 http://blog.csdn.net/u014205968/article/details/67639205 本文主要讲解runtime相关知识,从原理到实践,由于包含内容过多分为以下五篇文章详细讲解,可自行选择需要了解的方向: 从runtime开始: 理解面向对象的类到面向过程的结构体 从runtime开始: 深入理解OC消息转发机制 从runtime开始: 理解OC的属性property 从runtime开始: 实践Category添加属