《攻城掠地》如何提升武斗的胜率探讨
来源:星梦传扬游戏网 发表时间:2016-04-18 10:09:00下面星梦传扬游戏网小编给大家带来的是《攻城掠地》如何提升武斗的胜率探讨,大家快来看看吧,希望对各位玩家有所帮助!
攻城掠地如何提升武斗的胜率,除了投入金钱与时间之外,还有个人操作、运气、布阵的因素。想来许多玩家和超R脑海中都不经意会在比武过程浮现出这样一个问题:究竟比武有没有真正的完美布阵与科学决策,让自身的实力能够最大程度克制对手,从而获取胜利。
比武,在双方都属于顶尖层次的前提下(满觉醒,满珍宝,满神兵),主宰胜负的无非是三点:运气、操作、布阵。由于研究模型是基于大量数据的计算来评估胜负的,这可以消除掉大部分的不确定性的运气因素;操作属于玩家个人技术范畴,只要不明显失误即可。因此本文着重在于讨论布阵。
按照现有比武规则,武将上阵次序一旦定下,比武开始就不可再更改,因此提前找出最佳武将布阵顺序组合,是研究的要点。只要我们找出一种布阵方案A,让A方案对战所有布阵方案时,总体期望的胜率最高,那A方案就是最优布阵。所有布阵方案里共有多少种可能性的布阵呢?可以穷举出来,因为双方都是顶尖选手,因此选将也不会选弱将,无非就是7选5:觉醒夏侯、觉醒诸葛、关羽、赵云、周瑜、曹操、张飞。副将方面基本就是上面7个里选剩下的2个加上孟获曹仁,4个选3。(张飞其实做主将有点过时,姑且把他算进去,实际中为了计算效率可以剔除他)
这里我们确定了一个事实:我们和对手的布阵组合种类个数是有限的(高中学过排列组合就知道:主将7选5全排列,乘以副将4选3全排列=7*6*5*4*3*4*5*4*3=604800种布阵),现在我们的问题就具体变成为:我们要在604800种可能的布阵中,找出一种布阵,让它对剩下的604799种布阵总体胜率最高。
也就是说:我们只要找出这样一个方案去布阵,管它对手怎么布阵,我们的赢面都整体最高。
好了,看到这里相信有人骂娘了,六十多万个选一个,什么鬼?
淡定!这是基本思路,也是绕不开的绊脚石,至少我们已经有了一个可行的思路了不是么,如何解决这个问题我接下来深入讲解:
对于海量数据的运算,用计算机程序进行运算是必须的,因此只要编写好这样一个程序:指定胜负规则,输入双方布阵信息,计算机就会计算出双方对阵的胜负结果。具体来说,就是输入第1个布阵方案,对上第2个至第604800个布阵方案,看能赢多少次,赢一次就给一分,记录下第1个布阵方案的得分。第2个也如法炮制……这样六十多万种方案计算完毕后都会有各自的取胜局数(得分),我们找出得分最高的方案就是我们的万用布阵方案了。
以上是理论上的办法,那么这样计算需要多少次呢?根据中学数学中的等差数列求和可以轻易得到总共需要运行604799*(604799+1)/2=182891217600次计算(1800多亿次),这样的计算量对于一般家用计算机而言负担太大,因此需要对计算策略进行优化。
由于副将的特殊性不能放战法,从效率角度先简化掉副将选择的多样性,就会大大减轻计算负担。因此可以把副将去掉4选3的可能性,计算负担变成原来的四分之一,即:604800/4=151200,在评估所有方案得分时计算次数则变成151199*(151199+1)/2=11430644400次计算(114亿次),计算量变为原来的十五分之一,离成功又近一步。
能否进一步效率优化?答案是肯定的,刚才说的张飞如果把他从主将选择中PASS掉,那么就又可以减少运算次数。这里我们有必要讨论一下张飞存在的多余:山地上曹操、周瑜、赵云是必然的选择,接下来觉醒诸葛和觉醒夏侯两者实力远超张飞,因此张飞只能退出主将舞台。少了张飞,计算次数再度锐减为233269200(2.3亿次),布阵方案缩减为151200/7=21600个,这已经是家用计算机能驾驭的计算数量级。
接下来要面临的问题更具体:对于两个布阵之间的对决,怎么计算胜负结果。
胜负的判定需要计算得出,我们采用从单将到多将的推演方式。首先对两两武将进行多次比试,得出胜利方的平均剩余兵力,用平均剩余兵力来衡量这2个武将之间的在该地形的相克程度和比武结果。打个比方,假如平原上A武将对B武将比武A胜,并剩余30%的兵力(多次测试取平均值),我们就可以认定两者在平原的相克程度A:B是1.3:1。把这些热门上阵武将彼此间的相克程度都找出来,并形成下面这样一个表:
(通过实测数据采样,可以把表中未知部分补充完善)
这个参数表,可以根据傲世堂每次推出新武将而不断增加和更新,确保与时俱进,表中的1:1是本武将对上对手的同一武将,因此相克程度一样。
有了这个武将相克程度表的数据,计算机就可以很轻松读取表的数据计算在平原地形中不同布阵的比武结果,其他地形也一样,也就是总共需要3个参数表:平原、水域、山地。
关注星梦传扬微信公众号↓↓↓