xiaoyaorugu 发表于 2012-6-10 16:01 
没有找到,能麻烦给个链接么?
谢谢了
三、兵法部分 一)、兵法的发动 兵法的发动分陆地、水军、设施几种情况,其中以陆地的发动最为复杂,以下分述之。 1、在陆地上成功发动一次兵法实际上比较困难的,要经过多次筛选,诸多计算才能成功发动。陆地上成功发动一次并发的过程大体上分为2个步骤。 1)、兵法发动机会的产生 每一天,程序代码都会给满足条件的部队(所谓满足条件的部队是指:部队中至少有一名武将的最小间隔为0)1~2次的兵法发动机会,有时甚至有3次,不过总体来看满足条件的部队一旬内获得的次数大致在13~20次,决定次数的因素还未清楚,这个次数其实就是一个部队一旬内对敌方普通攻击的次数。对于每一次普通攻击,部队都有可能产生发动兵法的机会。这个机会产生的概率采用固定模型计算,而跟部队武将、阵形无关,具体概率如下: 因此部队兵法机会的把握概率在15%~30%之间。如果按照一旬15次兵法机会来计算,那么一旬内一支部队成功把握住的兵法机会次数平均2.25~4.5次左右。 2)、兵法发动机会的分配 如果部队在某一日成功把握住了一次发动机会,那么是否就一定会发动兵法呢?未必,因为还存在一个机会的分配过程,即这次机会到底应该由谁来利用。分配的算法流程大致如下: 建立可分配(最小间隔、健康状态等限制条件)的武将链表PersonList,链表中的武将按照位置排序; For each Officer in the PersonList if 分到机会 then exit else remove this officer from the PersonList end 其中是否“分到机会”的计算因武将所选的兵法不同而不同。游戏程序针对不同的兵法设计了多个分配函数,不过这些分配函数采用统一的公式计算分配到机会的概率: 按照这个计算公式,对于单人部队而言,如果阵形利于兵法的发动,而且武将位于前锋或中锋,那么一定可以成功分配到把握住的兵法机会。因此对于这种部队,能否发出兵法完全取决于部队能否成功把握住兵法机会。实际经验也表明:防守的时候,采用单人部队迎击的话,常常第一旬内就能够发出兵法。其实这正是因为在自地域作战,部队把握兵法机会的概率提高,因此一旬内把握住一次机会的概率就大大提高了,而一旦把握住,肯定不会分丢的。对于更多的情况,由于分配到兵法机会的概率<100%,因此并不是一旦把握住就一定能发动出来的。不过这个概率的最小值为25%,因此整个部队所有武将都分配不到一次把握住的机会的概率应该是比较小的,但分丢并不是不可能的。 每种兵法的分配函数中都硬编码了利于这种兵法发动的阵形代号,一般的兵法大概有那么2~3种。对于谋略系、策略系的兵法,并没有哪种特别的阵形利于发动,因此在上面的机会分配概率公式中,f(兵法,阵型)一项始终为1,因此谋略系、策略系兵法分配到兵法机会的最大概率为62.5%(单人、前锋),实战中也常常感觉到谋略系、策略系兵法不太容易发出。各种兵法的有利阵形列于下: 步兵系:0、1、15、18、19(鱼鳞、鹤翼、山越、南蛮、倭); 骑兵系:2、3、16、17(锥形、锋矢、乌丸、羌); 弓骑兵:2、5、16(锥形,箕形、乌丸); 弩兵:4、5、8(雁形、箕形、井阑)。 另外值得一提的是,偶在跟踪代码时发现这样的一个问题:对于如图所示的部队,在分配机会时似乎只判断了锋线上的武将,其他4个尚未判断就结束了,而锋线上的武将的兵法是发不出来的,因此总是把机会给分丢掉。实际试了一下,好像的确发不出兵法来,不过相信没有人会如此组队吧。 |