码迷,mamicode.com
首页 > 其他好文 > 详细

IO流(一) 待续....

时间:2014-05-22 06:41:59      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:数据分析入门

摘要:Dota(Defence of the Ancients,远古的守护), 是指基于魔兽争霸3:冰封王座(暴雪娱乐公司出品)的多人即时对战自定义地图,可支持10个人同时连线游戏。Dota以对立的两个小队展开对战,通常是5v5,游戏目的是守护自己的远古遗迹(近卫方的生命之树、天灾方的冰封王座),同时摧毁对方的远古遗迹。DotA是目前唯一被暴雪娱乐公司官方认可的魔兽争霸RPG。Dota在大学生中的风靡程度令人咂舌,而随着玩家对游戏的理解深入,本身存在于游戏中的许多数学模型被挖掘出来进行研究。游戏中所直接使用的数学计算虽不复杂,但结合的具体情况越多,对其进行分析就会越困难。本文将对dota中英雄护甲进行建模分析。


关键字:魔兽争霸 Dota 护甲 建模 分析


基本属性介绍  
    游戏中所直接使用的数学计算虽不复杂,但结合的具体情况越多,对其进行分析就会越困难。本文对此作出初步的探索。 基本属性 DotA中的每一个英雄,都有生命值(HP)、魔法值(MANA)、攻击力(按中文翻译看应该是应该是ATK,但实际英文却是Damage,即物理伤害)、护甲、射程(分远程近战)这5个显然的基本属性,以及魔法抗性、生命回复速度、魔法回复速度、攻击速度、移动速度这5个非常重要而又不能在游戏界面中直接看到的基本属性。此外,还有攻击前/后摇、施法前/后摇、白天/夜晚视野、弹道这些不常考虑的基本属性等。
    此外,每个英雄还有三种英雄属性,力量、敏捷、智力。这三种英雄属性并不直接起作用,而是转换为基本属性再起作用。力量属性:每增加一点力量,增加19点生命值和0.03点/秒的生命回复速度。敏捷属性:每增加一点敏捷,提升1%的攻击速度,每7点敏捷增加一点护甲。智力属性:每增加一点智力,增加13点魔法值和0.04点/秒的魔法回复速度。
主属性:每个英雄会把力量、敏捷、智力三者中的某一个当作主要属性,每1点主要属性会额外再增加1点攻击力。
护甲与伤害介绍
  伤害分为多种:魔法伤害、物理伤害、神圣伤害等。物理伤害是由英雄的普通攻击造成的,与之相对的是技能攻击,造成魔法伤害。
  护甲能抵消的只有物理伤害,而魔抗可以减免魔法伤害,但是本文只讨论物理伤害。下面进行建模,在这之前先定义几个术语:
  dd :伤害减免(Damage Decrease)
  a : 护甲(Armor)
  HP : 生命值,指英雄护甲为0时实际拥有的血量
  EPHP : 等效额外物理生命(Equivalent Extra Physical HP),是英雄拥有了护甲之后,可以抵挡超出原有HP的物理伤害。我们将这部分可以额外承受的物理伤害视为EPHP。


建模
首先给出dd和a的关系:
  dd ={ (6a%)/(1+6a%), a ≥ 0;
         0.94 ** (-a) - 1, -20 < a < 0;
         71%, a ≤ -20;
  这个公式是暴雪规定的,护甲值可以取小数,但在本文中一律四舍五入保留两位小数并且只讨论a大于等于0的情况。
  
  护甲为0时,能承受的伤害就是HP的大小;护甲大于0时,设初始伤害为c,那么经过护甲的削弱作用,最终伤害e = c × (1 - dd );e的最大值就是HP,那么c的最大值max(c)就是max(e) / (1 - dd);计算出来的max(c)显然就是能承受的最大物理原始伤害,这其实就是EPHP,计算后EPHP = HP×(1 + 6a%),即你要输出HP×(1 + 6a%)大小的物理伤害才能了结一个初始血量为HP护甲为a的英雄。
  那么护甲的存在实际上给予了一个英雄额外的抗物理打击能力,这种能力可以理解为给予了额外的生命,定义为EH,其大小显然为HP× 6a%,若视HP是固定的,那么这种抗打击能力与护甲值a是呈线性关系的。这句话有什么意义呢?对a求导,有▲EH = HP×6%,这意味着,每增加一点护甲,能带来的额外生命都是固定的HP×6%,而跟a的值无关。从而护甲为0时买一个守护指环(能增加2点护甲的装备)和在护甲为10时买,效果是一样的。
  再举一个例子,当一个英雄HP = 1000, a = 10的时候,他是买一个活力之球(增加250点HP)还是买一个板甲(增加10点护甲)更能抗打呢(暂不考虑价格因素)?
  若买活力之球:EPHP = (1000 + 250)× (1 + 10 × 6%) =  2000
  若买板甲:EPHP = 1000 × (1 + 20 ×6%) = 2200
  
  显然买板甲更合适,当然这是在只考虑物理攻击的条件下得出的结论,实际对战中
要考虑的因素有很多,比如技能,魔抗,支援等等,但是本文提供的分析有助于更理性的出装,避免胡乱决策导致的失败。玩游戏也可以数据流。


参考:
[1] http://wenku.baidu.com/view/38edca18a76e58fafab0031e
[2] 王君迪(浙江大学 控制科学与工程学系09级)  《Dota护甲系统完全解析》

IO流(一) 待续....,布布扣,bubuko.com

IO流(一) 待续....

标签:数据分析入门

原文地址:http://blog.csdn.net/u011218159/article/details/26287111

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!