好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

中的数学原理.pdf

23页
  • 卖家[上传人]:xzh****18
  • 文档编号:45756927
  • 上传时间:2018-06-19
  • 文档格式:PDF
  • 文档大小:1.62MB
  • / 23 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • V6.74cV6.74cV6.74cV6.74c)中的数学原理)中的数学原理 是一款基于暴雪《魔兽争霸 3》的游戏游戏中所直接使用的数学计算虽不复杂, 但结合的具体情况越多,对其进行分析就会越困难本文对此作出初步的探索基本属性基本属性基本属性基本属性 中的每一个英雄,都有生命值(HP) 、魔法值(MANA)、攻击力(按中文翻译看 应该是 ATK,但实际英文却是 Damage,即物理伤害) 、护甲、射程(分远程近战)这 5 个 显然的基本属性,以及魔法抗性、生命回复速度、魔法回复速度、攻击速度、移动速度这 5 个非常重要而又不能在游戏界面中直接看到的基本属性此外,还有攻击前/后摇、施法前/ 后摇、白天/夜晚视野、弹道这些不常考虑的基本属性等 此外,每个英雄还有三种英雄属性,力量、敏捷、智力这三种英雄属性并不直接起作 用,而是转换为基本属性再起作用 力量属性:每增加一点力量,增加 19 点生命值和 0.03 点/秒的生命回复速度 敏捷属性:每增加一点敏捷,提升 1%的攻击速度,每 7 点敏捷增加一点护甲 智力属性:每增加一点智力,增加 13 点魔法值和 0.04 点/秒的魔法回复速度 主属性:每个英雄会把力量、敏捷、智力三者中的某一个当作主要属性,每 1 点主要属 性会额外再增加 1 点攻击力。

      最后强调一下,为抓住主要矛盾,忽略次要矛盾,在不考虑英雄技能的前提下,直接影 响一个英雄作战能力的基本属性是:生命值、攻击力、护甲、魔法抗性、攻击速度、移动速 度护甲护甲护甲护甲两个英雄,不考虑技能的情况下,作战方式只有互 A(攻击) 这时产生的伤害都是物 理伤害再简化一下,一个英雄承受物理伤害的能力,仅与自身生命值(HP 变为 0 即为死 亡)和自身护甲有关,甚至可以不考虑对方的攻击力与攻击速度等要素了护甲公式(当0≥a时) :0%,100106. 006. 0≥×+××=aaadd式中,dd 为伤害减少(Damage Decrease) ,a 为护甲值(Armor) 使用 MATLAB 可以绘出曲线: a=0:50; dd=0.06*a./(0.06*a+1); plot(a,dd)显然,随着护甲的增加,伤害减少的曲线斜率在下降,因此伤害减少的收益会随着护甲 的增加而减少 然而, 仅仅对此下结论还太早, 因为伤害减少并不是一个直接决定英雄承受物理伤害能 力的指标,因为它的数值含义还不够明显 为简化思考中的变量,我们不考虑对手的攻击力,也不考虑自身的生命值,仅考虑: 在 自身拥有某个伤害减少的情况下,与伤害减少为 0(护甲为 0)相比,能够多承受几次攻击。

      111−−=ddh式中 dd 是伤害减少,dd−1就是剩余伤害,dd−11就是 1 次攻击变为几次攻击,所以h 为额外攻击次数 当伤害减少为 0(护甲为 0)时,显然,打一下,是一下,额外攻击次数为 0;当伤害 减少为 50%时,要造成等量伤害,打一下是不够的,要再打一下,额外攻击次数为 1 如果绘出额外攻击次数 h 和护甲 a 的曲线: a=0:50; dd=0.06*a./(0.06*a+1); h=1./(1-dd)-1; plot(a,h)我们会惊奇地发现:这说明,随着护甲的提升,英雄低档物理伤害的能力是线性提升的也就是说,不考虑游戏在计算时的四舍五入,在 0 点护甲时买一个守护指环(+2 点护甲)和 10 点护甲时买,对物理伤害的减免能力应该是一样的,尽管伤害减少的提高不同 值得注意的是,这个 h(额外攻击次数) ,也可以看成是等效额外物理生命(EquivalentExtra Physical HP)百分比在仅考虑物理伤害的情况下,3=h(护甲为 50)意味着 4 下 攻击,造成护甲为 0 时 1 下攻击相同的结果,因此,可以把拥有 50 点护甲,看成是等效的 额外 300%的物理生命值。

      由于护甲与额外攻击次数的关系是线性的, 因此每增加 1 点护甲, 相当于增加 6%点等效额外物理生命(不考虑游戏中的四舍五入) 举个例子:如果英雄已经拥有 1000 点 HP 和 10 点护甲,仅考虑提升承受物理伤害的能力,是应该购买活力之球(+250HP)还是板甲(+10 护甲) ?解:英雄此时具有的等效物理生命值为: 16001000%6101000=××+=EPHP 如果购买活力之球,则等效物理生命值增量为: 400250%610250=××+=∆EPHP 增加了 400 点 如果购买板甲,则则等效物理生命值增量为: 6001000%610=××=∆EPHP 增加了 600 点,因此该选择板甲 当然, 实际进行装备选择时往往答案是活力之球, 这不仅仅是因为大家没有进行过上述 计算, 还因为实际游戏中还要考虑到魔法伤害、 特定英雄技能、 合成高级装备等多方面因素 不过,这里也充分展现了等效物理生命值(EPHP)这一概念的重要之处当护甲为负数时,计算公式会有变化伤害减少(其实是增加,以负数表示)随护甲的 变化为:⎩⎨⎧−≤−=×, 4 . 144. 12 . 12 . 1>=×,这个结论可以严格地从均值不等式导出。

      以上介绍了如何计算、 比较乘间秒伤的绝对增量与相对增量的方法 这些方法都很简单, 在游戏中稍花一点时间就可心算完成 但是必须注意的是, 这里不仅没有考虑敌方英雄的格 挡 (敌方格挡的效果可随己方攻击力的提升而下降) , 也没有考虑己方英雄的额外攻击伤害额外攻击伤害额外攻击伤害额外攻击伤害额外攻击伤害额外伤害,大致分为暴击、击晕、连环闪电、反馈、减甲这五类很多英雄技能有额外 攻击伤害,这里仅从道具方面分析英雄的相关技能的分析,方法类似暴击暴击水晶剑加 35 点攻击力,有 20%的暴击概率和 1.75 的暴击倍率大炮(暴雪弩炮)加 81 点攻击力,有 25%的暴击概率和 2.5 的暴击倍率发生 2.5 倍暴击相当于在 1 击中额外增加了 1.5 倍的攻击力,如果考虑 25%的概率,相当于每 1 击都额外增加了375. 025. 05 . 1=×倍的攻击力atk=[50 100 200 300];atk1=atk+35+(atk+35)*0.75*0.2%水晶剑 atk2=atk+81+(atk+81)*1.5*0.25%大炮(暴雪弩炮)攻击力50100200300加水晶剑85+13135+20235+35335+50加大炮131+49181+68281+105381+143如果有 200 点攻击力,购买一个大炮,表面上看攻击力变为 281,实际上,从统计平均 的角度看,相当于还额外增加了 105 点攻击力! 从表中或公式中都可以看出,暴击的效果随着英雄攻击力的提升而增长。

      提升攻击力, 会使乘间秒伤的绝对增量提升更多, 但相比于没暴击的情况, 增攻比、 乘间秒伤增率却不变, 后面与减甲一起分析击晕击晕击晕道具有碎骨锤(碎颅锤)和金箍棒但前者击晕没有伤害,这里不考虑;而后者的合成配件标枪,虽无眩晕,但有伤害金箍棒加 88 点攻击力, 15 点攻击速度, 和克敌机先 (攻击不会被闪避) 技能与猛击 (35% 的概率造成 100 点额外伤害并眩晕 0.01 秒)技能按统计平均算,相当于每一击增加了 35 点的额外伤害 近战英雄的猛击技能是法术攻击魔法伤害,无法伤害魔免单位,但能击晕魔免单位; 远 程英雄的猛击技能是英雄攻击普通伤害,伤害无视魔免算护甲,无法击晕魔免单位 对于远程英雄, 金箍棒相当于每一击增加了 35 点额外攻击力, 可以与暴击那张表相比 不考虑克敌机先技能,它不仅不如大炮,而且差距会越来越大 对于近战英雄, 金箍棒相当于每一击增加了 35 点额外魔法伤害, 不能直接与暴击比较, 而应该先乘以敌法英雄魔法伤害承受百分比, 再除以敌方英雄物理伤害承受百分比, 才能换 算回等效额外攻击力 在这两个参数都不明的情况下, 只能说大概额外魔法伤害与其等效额 外攻击力的数值差不多,差距就是两个百分比的比值。

      连环闪电连环闪电拥有连环闪电的道具是漩涡和雷神之锤漩涡加 24 点攻击力和 25 点攻击速度,击中目标后有 25%的概率放出 120 点伤害的连 环闪电跳跃 4 次雷神之锤加 24 点攻击力和 80 点攻击速度,击中目标后有 25%的概率放 出 160 点伤害的连环闪电跳跃 3 次,冷却时间 1 秒 不考虑跳跃, 漩涡每一击有 30 点额外魔法伤害, 雷锤有 40 点 (考虑冷却时间会略少些) 换算方法与近战金箍棒相同反馈反馈有反馈的物品有 1 级散失之刃和 2 级散失之刃其中,1 级散失之刃在击中目标的同时会减少目标 20 点魔法和等量伤害, 2 级则是 36 点 这种伤害与敌法师的法球技能类似,都是英雄攻击普通伤害,伤害无视魔免算护甲,可以看做额外攻击力减甲减甲能够减甲的道具有黯灭、强袭装甲、勇气勋章以下着重介绍黯灭 黯灭加 60 点攻击力,攻击目标后,使目标减少 6 点护甲,持续 5 秒强袭减少 900 范 围内非友方单位 5 点护甲勇气勋章主动点击使用,可使目标(及自己)减少 6 点护甲, 持 续 7 秒 根据前面对护甲的分析,在护甲为正的情况下,护甲越高,提升伤害减少就越难,但不 计舍入,每点护甲都使额外攻击次数线性提升,每点护甲提高 6%的等效物理生命值。

      减甲 与加甲情况类似,但由于减甲能把护甲由正变负,因此必要把前面的图再画一下 a1=0:50; a2=-20:0; a3=-30:-20; dd1=0.06*a1./(0.06*a1+1); dd2=0.94.^(-a2)-1; dd3=-0.71+a3.*0; plot(a1,dd1,a2,dd2,a3,dd3)图中可见,护甲越接近 0,减甲对伤害减少的减少效果越好,无论正负;护甲越高,减 甲对伤害减少的减少效果越差;护甲减到-20,再减无益 (接上一段程序,否则无效 ) h1=1./(1-dd1)-1; h2=1./(1-dd2)-1; h3=1./(1-dd3)-1; plot(a1,h1,a2,h2,a3,h3)额外攻击次数在护甲为正时随护甲线性减少,而在护甲为负数时则更慢速地非线性减 少 两张图相同的结论是,护甲减到 0 附近就差不多了,再费力地继续减效果不佳而不同 结论则是在护甲为正时,究竟效果是不是线性的 如果只考虑一次物理攻击的情况,那么就该使用伤害减少这个概念 黯灭减少 6 点护甲后,敌方的伤害减少变化: a=0:50; dd=0.06*a./(0.06*a+1);a1=a-6; %中了黯灭后 for i=1:51, if a1(i)<0 dd1(i)=0.94^(-a1(i))-1; else dd1(i)=0.06*a1(i)/(0.06*a1(i)+1); end end plot(a,dd-dd1)这个图与护甲与伤害减少那张图的结论相同。

      由于减甲效果还与我方攻击力有关, 应该 是一簇曲线或三维曲线,下改为表的方式显示,在不同己方攻击力、不同敌方护甲下,黯灭 的减 6 点护甲相当于多少点额外攻击力 clear; ATK=[50 100 200 300]; a=[0 6 12 20 30]; dd=0.06*a./(0.06*a+1);dd1=0.06*(a-6)./(0.06*(a-6)+1);dd1(1)=0.94^(6)-1;%修正护甲为负 ed=(dd-dd1)'*(ATK+60);%黯灭+60攻击后,减甲带来的额外物理伤害 %把ed按照原护甲a,换算回攻击力 [m,n]=size(dd);%算a的大小 for i=1:n, eATK(i,:)=ed(i,:)/(1-dd(i)); end ed,eATK减甲带来的额外物理伤害列表如下:敌 方 护 甲我 方 攻 击力 (+黯 灭)50(+60)100(+60)200(+60)300(+60)034508111262942699512162。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.