牧羊三国游戏网(策略单机游戏无毒无插件无广告免费下载)

 找回密码
 立即注册

微信扫码登录

使用验证码登录

查看: 1475|回复: 0

[绿色版] 曹操传AI理论

[复制链接]
发表于 2015-4-24 17:10 | 显示全部楼层 |阅读模式

马上注册,结交更多三国游戏迷,轻松玩转“牧羊”。

您需要 登录 才可以下载或查看,没有账号?立即注册

x



行动和攻击点顺序

我们常常在猜测AI会优先攻击哪些目标,像濒死、高伤害、无反击、恢复地形等等,这些状态在游戏程序里都被赋予了一个精确的数值,在此称之为行动价值。AI会采取行动价值最高的一项行动。
在介绍行动价值之前,先简单介绍一下AI类型。
AI的类型共有七种,可以用剧本编辑器或通用调试器查看:


图片附件: AI类型.jpg (2014-8-30 09:59, 34.94 K)





(一)、被动出击。物理攻击区域内有敌方单位才会移动,法师也是这样判断。所谓物理攻击区域,是指一回合的移动范围内可以物理攻击到的所有区域。
(二)、主动出击。物理攻击区域内无敌方单位时,会主动朝最近的敌方单位移动。
(三)、坚守原地。无论如何都不会移动。
(四)、攻击武将。朝着指定武将移动,指定武将所在的地点是最终目的地,该目的地会随着指定武将的移动而改变。
(五)、到指定点。朝着指定点移动,指定点是最终目的地。
(六)、跟随武将。朝着指定武将移动,但不会攻击和使用策略。
(七)、逃至指定点。朝着指定点移动,但不会攻击和使用策略。

一、二、四、五的AI如果残血,会朝着本方第一个出场的有名武将方向移动,如果该名武将已撤退,则会朝最近的敌方单位移动。
五、七的AI如果到了指定点,AI类型会变更为被动出击。


接下来就开始介绍行动价值。
曹操传中的行动价值大致可以分为三类:物理攻击价值、策略价值、位置价值。
物理攻击价值用来判断某个武将的招打程度。策略价值用来判断优先使用哪个策略。位置价值用来判断AI优先走到哪个位置,可以跟前面的两类价值叠加。物理攻击价值和位置价值关系比较密切,也相对简单一点,就放在一起介绍。

物理攻击价值和位置价值



图片附件: 行动价值表2.jpg (2014-8-30 09:59, 95.01 K)




第1项~第6项跟伤害有关。电脑在攻击前会产生一个伤害预估值,然后通过这个伤害预估值与目标的HP进行比较。伤害预估值是根据电脑移动前的地形计算得出,跟移动后的地形无关。

第1项:可击毙目标。(78)
即预估伤害值大于等于目标剩余HP。这项价值的确很高,但也不是不可超越。若不满足这项,则看第2项。

第2项:对目标的伤害大于等于总HP的10%。(14)
这就是所谓的电脑会优先攻击防御力较低的目标。其实攻击低防的目标只是表面现象,实际上是看伤害预估值占目标总HP的比例。豪曹中的曹洪防御力虽然低但是血多,所以比一些高防的武将更不招打。曹操传中只有简单的10%这一条分界线,而新引擎中已经划分出了更多的分界线,让我军防低血少的武将更容易受伤。豪曹中似乎每增加一个百分点行动价值就会加1。若不满足这项,则看第3项。

第3项:对目标的伤害小于总HP的10%,目标剩余HP小于总HP的41%。(14)
这就是所谓的电脑会优先攻击血少的目标,也就是亚残血理论,优先度与第2项相同。若不满足这项,则看第4项。

第4项:对目标的伤害小于总HP的10%,目标剩余HP大于等于总HP的41%,AI类型是主动出击。(8)
若这项再不满足,则跟单体攻击伤害有关的价值为0。1~4项是互斥的,最多只能满足其中一项。

第5项:AI拥有多体攻击的能力,目标是单体状态。(-4)

第6项:AI拥有多体攻击的能力,目标是连体状态。(10*A+4*B)
A和B都是目标连着的人数。A是满足第1项的人数,B是满足第2项的人数。

这里解释一下连体状态和单体状态。曹操传中,拥有多体攻击能力的AI就只有四种:重炮车和霹雳车的十字穿透攻击、以及驯虎师和蛇矛的直线穿透攻击。十字穿透的连体状态很明显,只要贴身连在一起就能被穿透到。但直线穿透不一样,必须从特定的方向攻击才能穿透到,所以仅仅连在一起还不够,还要看与AI的相对位置,用图来说明比较直观。下图中的敌军骑兵装备蛇矛,那么对他来说,ADE的武将是连体状态,BCF的武将不是连体状态,也就是单体状态。驯虎师虽然不能斜向攻击,但斜向的判断方式跟图中是一样的。


图片附件: 直线穿透连体判断方式.jpg (2014-8-30 09:59, 74.04 K)




第7项:目标混乱。(8)

第8项:目标是有名武将。(4)
这项实际上应该写成“目标是DATA序号在前174位的武将”。由于曹操传中前174位都是有名字的武将,所以这么写更容易理解。但在某些mod中,一些有名武将的序号并不处于前174位,当然也就没有了这个价值。

第9项:目标是有名武将,且第一个出场(友军AI)。(8)
这项是第8项的特殊情况,似乎只有友军AI会判断,比如汜水关的华雄比李傕更招打。出场顺序要用剧本编辑器或通用调试器查看,不过敌军的主将一般都是第一个出场。

第10项:可不在目标的攻击范围内攻击(无反击)。(1)
这就是我们通常说的无反击,其实这是一种位置价值,并非攻击武将的价值。攻击混乱的敌人、或者装备青龙刀都是“无反击”,但这些“无反击”并无价值。

第11项:非残血时可进入恢复地形攻击目标。(8或7或6)
恢复地形的情况比较复杂,跟AI当前所在的地形有关。如果恢复地形和目的地是同一个坐标,情况还会有所变化,请看第15项的说明。另外,AI使用策略时跟恢复地形也有很大关系。这里面实在是太复杂,我放弃了研究。

第12项:残血时可进入恢复地形攻击目标。(X+50)
在第11项的基础上加上50。

第13项:可进入目的地攻击目标。(10)
“攻击武将”,“到指定点”,“跟随武将”,“逃至指定点”这四种AI都是有目的地的,这比较好理解。还有上面介绍AI类型时说过,有四种AI残血时,会朝着本方第一个出场的有名武将方向移动,这个有名武将的位置也是一个目的地。如果一回合内不能移动到这些目的地,那么就会产生一个临时目的地。如果目的地被自己人占据,还会产生新的目的地。关于目的地的具体算法,请看《曹操传AI站位规律》一文。

第14项:可进入目的地上下左右四格攻击目标。(9)

第15项:以上几个位置若无法攻击到目标,则其位置价值减少1(此项还不太确定,故没有写在价值表内)
此项可以用来判断AI是去攻击目标还是去某个位置。有个例外是,如果恢复地形和目的地是同一个地方,那么作为恢复地形的价值不用减1。


下面举几个例子

例子一:下图是我在打《曹操传全员3级红线通关》时,剑阁之战某个回合的站位,这样的站位可以保证我军无反击。但如果满宠是位于右边一格的白框位置,那么对于下面左边兵营里的驯虎师来说,司马懿将会处于连体状态,驯虎师会去攻击司马懿导致我军反击涨经验。


图片附件: 穿透例子.jpg (2014-8-30 09:59, 84.37 K)



例子二:下图重炮车AI为主动出击,残血。曹操HP为1,炮车对另外两人的伤害都在10%以上。
曹操满足第1、5、8、10项,炮车攻击曹操的价值为78+4-4+1=79
夏侯惇满足第2、6、8、10、12项,炮车攻击夏侯惇的价值为14+4*1+4+1+58=81
所以电脑会进兵营攻击夏侯惇。


图片附件: 例子四.jpg (2014-8-30 09:59, 51.16 K)



例子三:下图贼兵AI为主动出击,残血。刘备是敌方阵营第一个出场的武将,所以贼兵会朝刘备的位置移动,黑框是贼兵本回合的临时目的地,往黑框左边一格可以攻击到夏侯惇,所以夏侯惇满足第14项。
假设贼兵对夏侯惇和刘晔造成的伤害都在10%以上。
刘晔满足2、7、8、10项,价值为14+8+4+1=27
夏侯惇满足2、8、14项,价值为14+4+9=27
两人价值一样,贼兵会选择离自己更近的白框而去攻击夏侯惇。


图片附件: 例子六.jpg (2014-8-30 09:59, 70.63 K)




策略价值

策略价值比前面两种价值复杂很多,因为这里面涉及到概率问题和其它杂七杂八的问题,我自己也不是很确定。价值表仅供参考。


图片附件: 策略价值表.jpg (2014-8-30 09:59, 208.4 K)



攻击策略说明:

1、跟物理伤害类似,策略伤害也是看比例,所以可以利用精神力低血少的人把敌军法师引上来。这也是典韦怕策略的原因之一,由于血少,敌军法师的灼热对他的伤害经常超过30%,所以虽然和许褚同样是C档次的精神力,但比许褚更容易被集火。


图片附件: 法师对典韦和许褚的灼热伤害.jpg (2014-8-30 09:59, 82.5 K)



2、和物理伤害不同的是,策略伤害会把伤害浮动值算进去。比如目标总HP是300,AI对其策略伤害是88,没有到30%,但是算上浮动伤害最高有92,超过了30%,那么也算是在[30%,100%)的区间内。
3、诱惑必须是AI的HP未满时才会有使用价值。
4、群伤策略的连体状态算法估计是和物理攻击一样的,未验证。



辅助和妨碍策略说明:

1、封咒、谎报、谎言这三种策略看的是命中率,太低了AI就不会使用。
2、谎报的价值是30,也就是说如果AI对目标的策略伤害小于其总HP的30%,就会优先使用谎报。
3、谎报和伤害在[30%,100%)区间的灼热都是30的价值,AI的使用规律是这样的。当目标剩余HP小于等于总HP的80%时,必定使用灼热。大于80%时,如果最小浮动伤害大于等于总HP的30%,还是必定使用灼热。如果最小浮动伤害小于总HP的30%,那么两种策略各有一定的概率被使用。
4、用觉醒解混乱有40的价值,解麻痹的价值有30,比一般的物理攻击价值高,所以杨家将里的战神经常优先使用觉醒。来看一下实际例子,下面是我在打《杨家将传奇战报》时,大破天门阵二里的一张图。我在战报里写到八姐不能被混乱,这是为了让敌方战神待在在后方使用觉醒。假如八姐被混乱,那么八姐满足物理攻击价值中的2、6、7、8、10项,价值为14+4*1+8+4+1=31,将会被拥有突击移动的战神攻击。


图片附件: 觉醒解麻痹的例子.jpg (2014-8-30 09:59, 63.78 K)



补给策略说明:

1、输送的价值比大补给高,所以即使是近距离,AI也是使用输送。
2、援队和援军的价值是一样的,这点比较奇怪。当用援队和援军能补给到相同数量的人时,AI优先使用援队。

以上所说的策略价值是在AI可以在原地施放策略,而且攻击范围内无敌方单位时的价值。如果需要移动施放策略,或者攻击范围内有敌方单位,所有策略价值要减去1。不过这里似乎还跟AI类型有关,未详细测试。另外,当物理攻击价值和策略价值相同时,使用优先度为物理攻击>攻击策略>补给策略>辅助和妨碍策略。

一张走位优先度的实测图,1最高,12最低。


图片附件: 三格实际优先度.jpg (2014-8-30 10:22, 96.11 K)




我以前写过一篇《曹操传主动出击AI在相同距离下的走位规律》,现在这个移动规律篇就是对该规律进行更加系统的描述。
在《行动价值篇》里讲到,AI优先选择行动价值最高的一项行动。那么如果有多项行动的价值相等,AI又会如何选择呢?本篇要讲的就是判断完行动价值以后,AI的移动规律。
AI的移动规律大致可以分为攻击区域内有敌人和无敌人两种,后者是建立在前者的基础上的,所以首先来讲一下相对简单的有敌人的情况。这个情况里面包含了三个规律,其中有一个规律应该是众所周知了,那就是所谓的“就近原则”,AI会优先选择离自己最近的攻击位。然而这个规律说起来简单,其实里面另有玄机。只是因为在一般情况下不影响我们的判断,所以即使不知道这个玄机也没关系。

规律一:AI优先选择移动力消耗最少的位置

这句话里面包含了两个信息:“移动力消耗最少”和“位置”。
曹操传中的距离计算并不是简单的数一下格子数就行了,还要算上地形对移动力的影响。所以这里不说“距离最近”,而说“移动力消耗最少”。那么这个“位置”又是哪个位置呢?当然不是攻击位置,否则就没必要特别说明了。这个“位置”是指攻击位的上下左右四格。看下图:AI到ABC三个白框的行动价值相等,这三个白框往上下左右各延伸出四个格子,除去对方贴身四格和AI移动范围外的格子,剩下1234四个有效格子。AI到23两个格子消耗的移动力最少,所以会优先选择这两个格子,最终移动到B框。


图片附件: 规律一.jpg (2014-8-30 10:22, 49.52 K)



不过对上面这种情况来说,这完全是多此一举的判断,直接用ABC白框来判断更省事,下面再举一例。下图中,ABC三个白框行动价值相等,A框明显距离远,就不考虑了。B和C的白框延伸出1234四个有效格子,AI到1号格子需消耗4点移动力,到3号格子需消耗3点移动力,所以AI会选择3号,从而去C框攻击荀彧。


图片附件: 规律一-2.jpg (2014-8-30 10:22, 44.94 K)



如果把郭嘉右移两格,让AI到1号格子消耗的移动力变为2,AI就会去左边攻击郭嘉。


图片附件: 规律一-3.jpg (2014-8-30 10:22, 36.09 K)



如果让郭嘉右移一格,AI到两边消耗的移动力都是3,AI又会如何选择呢?

规律二:AI优先选择靠上的位置,若高度相同,则优先选择靠左的位置。

这里的“位置”当然也和上面一样指的是攻击位的上下左右四格。
下图中,AI到1234四个格子消耗移动力都相等,1号和3号两个格子靠上,1号比3号靠左,所以AI会选择1号,最终去左边攻击郭嘉。


图片附件: 规律二.jpg (2014-8-30 10:22, 57.48 K)



在郭嘉右边两格处安排一名武将。受该武将贴身四格的影响,1号格子失效,剩下234三个格子,AI会选择位置靠上的3号,从而去右边攻击荀彧。


图片附件: 规律二-2.jpg (2014-8-30 10:22, 54.59 K)



假如AI装备了赤兔马,则可以忽略对方贴身四格的影响,1号格子仍然有效。
前面说的都是AI如何选择攻击位的上下左右四格,离攻击位还差一步,那么AI最后究竟是怎样选择这最后一步呢?

规律三:AI按上右下左的顺序选择最后一格。

下图两个白框延伸出三个有效格子,1号格子最靠上,所以AI优先选择1号。再根据规律三,最终到右边攻击荀彧。


图片附件: 规律三.jpg (2014-8-30 10:22, 40.62 K)



如果AI一开始就只能移动一格,同样是按照上右下左的顺序移动。


图片附件: 规律三-2.jpg (2014-8-30 10:22, 32.75 K)



图片附件: 规律三-3.jpg (2014-8-30 10:22, 15.66 K)



根据这三个规律,就可以完美地解释开头那张图的优先度了。比如2和3,就是规律三的第一个例子。比如4和5,就跟规律二的第一个例子差不多。比如6和7,符合规律三里面的上右下左顺序。
上下左右四格是移动规律的核心,规律一和规律二均是基于此来判断的。想知道AI最终会走到哪个位置,就要先知道前一步是在哪个位置。下面再举一个规律二和规律三合起来判断的例子,规律一比较简单,就不再举例了。
下图AI有三个等价值的攻击位可以攻击,优先度是1-2-3


图片附件: 规律二三.jpg (2014-8-30 10:27, 60.08 K)



来看一下AI是怎么判断的。
画出三个攻击位的上下左右四格,除去紧贴人物的格子,剩下四个有效格子。


图片附件: 规律二三-2.jpg (2014-8-30 10:27, 63 K)



根据规律二,AI会优先选择最靠上的格子。这个格子周围只有下方的一个攻击位,所以还用不到规律三,直接判断往下走攻击荀彧


图片附件: 规律二三-3.jpg (2014-8-30 10:27, 62.47 K)



然后是同一高度下,靠左边的格子。这个格子周围有两个攻击位,此时就要用到规律三了。按规律三的上右下左顺序,优先选择下方的司马懿,最后再选择左方的郭嘉。


图片附件: 规律二三-4.jpg (2014-8-30 10:27, 62 K)







下面开始讲攻击区域内没有敌人的情况,这种情况下,如果AI类型不是到某个目的地,那就会朝“某个人”移动,关键是如何确定出这个“人”。这个判断过程不仅要用到前面说过的三个规律,其后续还有两个规律:规律四和规律五。
先看下图,敌人在AI攻击区域外,AI先要根据前三个规律确定一个攻击位。这个时候AI不会在乎是否会被反击,所以在判断时会把所有的攻击位都算上(这里内部程序的算法估计是用AI的攻击范围覆盖了对方的攻击范围)。另外,连攻击位都已经在AI移动范围外了,那么AI也不会在乎延伸出来的上下左右四格是否在移动范围内。荀彧周围共有8个攻击位,很容易判断出AI优先选择A框攻击位。


图片附件: 规律一二三.jpg (2014-8-30 10:27, 52.61 K)



到这里还没结束!上面说过,AI是朝离自己最近的“人”移动,而不是最近的“攻击位”移动。该图中,AI在A框里能攻击到的只有一个敌人,所以最终目标锁定为这个人,然后朝着此人(或者说此人所在的位置)移动。
那么问题来了,如果在A框里能攻击到多个人,AI会如何选择?

规律四:AI优先选择出场顺序靠后的人。

这个顺序指的是出兵界面的武将顺序,越靠后优先度越高。
下图中,根据前三个规律,AI仍然是优先选择A框。此时AI在A框可以攻击到两个人。假如在出兵时,郭嘉位于荀彧之后,那么AI就会锁定郭嘉。


图片附件: 规律四.jpg (2014-8-30 10:27, 67.57 K)



锁定了郭嘉后,AI会选择一条移动力消耗最少的路线前往郭嘉所在地,此时又要用到规律一和二。也就是郭嘉的所在地要往上下左右延伸出四格,AI选择到这四格中移动力消耗最少的一格。如果到这几格的移动力消耗都一样,那再根据规律二选出最优的一格。这里AI是选择1号格子。


图片附件: 规律四+一.jpg (2014-8-30 10:27, 245.25 K)



通往1号格子的路有好几条,AI会如何选择?

规律五:AI按上右下左的路线朝目标移动。

下图中,AI到1号位的路线是先往上的,所以要优于往右走的2号位。


图片附件: 规律五.jpg (2014-8-30 10:27, 62.75 K)



再比如下图,刘晔比曹操后出场,AI按照上右下左的路线接近刘晔


图片附件: 规律五-2.jpg (2014-8-30 10:27, 50.86 K)



以上五个规律便是整个移动规律的全部内容,简单概括起来就是:
规律一确定移动力消耗,规律二确定攻击位前一格,规律三确定攻击位,规律四确定人,规律五确定路线。



下面再举一个完整的例子,看一下AI的整个判断过程。
下图我军两个人在AI的攻击区域外,AI是连弩兵。


图片附件: 完整例子.jpg (2014-8-30 10:27, 280.53 K)



本来在开始判定之前,要画出所有攻击位的上下左右四格。但是连弩兵的攻击范围太大,就不一一画出了。反正从图中可以很直观地看出来,不需要严格地按照规律一来判断。这里只画出最近的几个攻击位和它们的上下左右四格。


图片附件: 规律一二三四五.jpg (2014-8-30 10:27, 74.81 K)



根据规律二,AI选择最靠上的一个青色格子


图片附件: 规律一二三四五-2.jpg (2014-8-30 10:27, 74.55 K)



根据规律三,AI选择下面的这个攻击位


图片附件: 规律一二三四五-3.jpg (2014-8-30 10:27, 74.7 K)



根据规律四,AI选择出场靠后的刘晔


图片附件: 规律一二三四五-4.jpg (2014-8-30 10:27, 75.27 K)



根据规律五,AI按上右下左的路线走到离刘晔最近的位置


图片附件: 规律一二三四五-5.jpg (2014-8-30 10:27, 74.38 K)



AI的最终走位如下图所示。


图片附件: 规律一二三四五-6.jpg (2014-8-30 10:39, 42.13 K)



最后,来解释一下原版曹操传中的一个现象:主动出击的AI原地不动。
在第一章第12关的袁术讨伐战中,西门吕布军的行动很奇怪,一开始原地不动,等其它几个门进攻到一定程度后才开始行动,而且移动方向也很怪异。虽然可以通过编写剧本来达到这种效果,但我查看了剧本后,却没发现有这种设置,吕布军从头到尾都是很普通的主动出击。现在就用移动规律来看一下究竟发生了什么事。
西门,吕布和敌人的站位如图
站位规律篇









上一篇:再次挑战极限——曹操传超噩梦级打法
下一篇:魔王复仇记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

牧羊头条上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|牧羊三国游戏网

GMT+8, 2024-12-22 16:24 , Processed in 1.792176 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表