
前置声明:
关于本文出现的任何结论均不能保证绝对严谨,如炮损的衡量是测的不是算的,无法保证数据全部合理,无法保证测试完全正确,仅供参考;测试样本较小,由此产生的误差可能会很大,甚至可能无法得出某一结论;试图引用本文的数据和结论前请务必仔细甄别。如有其他错误还请指出,b人感激不尽。
由于本人语言组织能力很差,您在阅读此文的过程中可能会看到前言不搭后语的表述,意会即可。本文会采用夹叙夹议带说明的形式码成,并尽可能把事情用大白话讲清楚,让新人也能理解这个测试的意图;至于高水平玩家,各位就当是看个流水账(
引子
Rt,有这个测试的起因是差不多半个月前刷贴吧看到有人讨论jd16这个阵怎么怎么样,本来打算水个经验就跑的,然后刚要退出去瞥见底下有吧友说jd16炮损之大可能每xF就要换炮云云。于是我忽然发觉关于jd16,或者推广一下,形如jd16这种含底线炮的阵,大家普遍认为它/它们的底线炮存在炮损,这无可争议;但关于炮损的细节,譬如单次选卡下来炮损几何?十次、百次乃至千次呢?具体数值是多少?这些问题似乎并没有人研究过,可能是因为jd16就一国民阵没啥好捣鼓的,也可能已有定论而我不自知。不管如何,我还是希望从jd16入手,实打实测一下,用自己得出的粗浅结论解释个大概,即使没什么惊天动地的发现,也算是走了个流程,证明自己来过且留下个痕迹。
有了想法之后我先根据脑海中的思路粗浅地列了大纲,统共花了半个多小时,jd16理所当然被当做例阵放在了第一位。
如果一个阵型有问题,解决方法无非两种:要么改变阵设,要么改变阵解。jd16这玩意炮损之所以这么高,根本原因在于阵设。同类型相同或相似节奏的守底线炮的阵后场布置要么是三曾一伞要么是三曾一瓜,很少有jd16这种简单粗暴直接上四曾的,而三曾和四曾其实区别并不大,来多少imp都是打一轮,嗯说也是曾反应时间的差异。弄明白这点接下来就是给jd16找新解了改阵设?那你干脆去玩别的阵得了,这个解包括全难度和变速,演示视频见此。
起底高炮损的幕后元凶
修文物这种事总得有人干,尽管它没什么实用性的意义。
调全难度用原解跑了几遍,发现jd16的炮损基本是由红眼扔出的小鬼造成的;再往细了说,是由本波出生的红眼在下一波被激活时扔出的小鬼造成的。因为原解对激活炮外剩余四炮的排布,这些红眼会在下一波走的更靠前,扔出的小鬼自然会更靠后。
理清症结所在后思路就很清晰了——找到这样的更优解:它能够更好地处理这些红眼扔出的小鬼。由于jd16的阵设不偷花只能靠天,故而能用的节奏并不多。这里首先列出原解P6,并假设从w1开始进入循环:
|PPDD|PP|PP|PPDD|PP|PP|
运算量排布是422422,这意味着w2出生的红眼会在w3投掷,并且因为其相对靠前,扔出的小鬼可以毫不费力地落在三列靠左,加之曾迟钝的启动时间,很容易产生数值可观的炮损,这便是422排法的有伤片段(上述轨道标红的部分,下同) 。假设w10也从PD波切入循环,那么这样的片段在原解中能找到6处。为放大这一瑕疵,测试采用纯巨人均匀出怪注1并锁定波长,运阵百F后记录每次选卡的炮损,录入此表:

然而原始阵解对延迟炮的生效时机和落点甚至没有强制要求
在接着往下讲之前,我有必要先说明一下表格各项的意思。
量度:测试的计量单位,其中flag并不一定代表测试是连续的,多数时候它仅作为编号告诉你测试的样本量。
剩余血量:数据的录入端,一二五六路底线炮是分开测的。
行级炮损:数据输出端,和剩余血量分开是为了方便记录数据。
测量值:求和求平均。拿这张表举例,右下角的6304是五十次选卡造成的炮损,126.08是这五十次选卡求平均后的结果,下文会称这个平均值为单次平均。
注1:关于出怪,测试调用avz内置的设置出怪函数,单次选卡非旗帜波红眼白眼数量均为25,除去8只小偷和2只旗帜,合计白眼494只,红眼496只,红眼个数约为自然出怪平均值的7.6倍。文中提及的所有测试均未使用平均分配函数,所得结果有一定的随机性。
100F合炮损高达四位数,单次平均接近130,属于是惨不忍睹但又在意料之中。如此之高的炮损能撑过两次选卡就已经谢天谢地了,能脸过10F说明你RP好。五十次选卡仅8次无伤,无伤率16%。另外需要说明的是这里的100F测试是开存档只读反复跑2F得出的结果。不过原解真的如一些人所言那么不堪吗?我觉得未必。下表以10F为单位测试了合计200F的全难度出怪,具体情况如下注2:

看着还好,不是么
单次平均不到8,但仍然不能忽视样本数据方差过大的事实。
注2:左侧flag一栏是测试编号,不代表测试的连续性,而是单纯用来告诉你相同条件的测试一共跑了多少次,仅此而已。上面已经声明过了,但不妨碍我再强调一遍((
接上文所言,有伤片段会带来大量炮损,那么其他片段是否无伤?笔者不敢妄下断言。限于文章篇幅和空闲时间,仅在上述测试的基础上记录了几个有伤选卡的明细,其逐波炮损如下:

没有w9&w19,因为收尾用炮相对自由;
其中,符合wave%3==1的波次是PPDD波,符合wave%3==0的波次是有伤片段——生动诠释了什么叫“非无伤选卡的炮损不一定只来自有伤片段,但有伤片段一定产生炮损”(bushi
寻求优解的测试论证
由422的特性,很容易想到更换压制更均匀的P6-332:
|PD/P|P/PD|PP|PD/P|P/PD|PP|
事实上332和422没有本质区别,证明略。若考虑加入垫材,在有伤片段激活炮生效前垫红眼延后其投掷,使白眼扔出的小鬼比红眼的先落地,这样就能让曾提前进入攻击状态,变相减小炮损。插入垫材后的片段变成|PD|P|ccP|...暂且称之为P6-C。
下半场类似,但遗憾的是垫材CD冲突,否则需要四张垫材,对于靠天的jd16将会是一笔不小的开销(有没有办法只利用两张小喷连垫两波,一举消除下半场的有伤片段?感兴趣的读者可以试一试),此处给出演示视频的完整轨道:
|PD/P|P/PD|ccP/P|PD/P|P/PD|ccP/P|
在原解基础上垫半场则等价于P6-C,只不过332不容易延迟。多说无益,上表:


二者的单次平均大概是四五十的样子,比原解少了一半多。有垫一侧为上半场,从表上就能直观看出。
牵制红眼的办法有很多,既然没法双垫下半场,那就想尽办法缩短红眼的行进距离,新视频中采用226激活下半场,上半场不变:

单次平均有所下降,不过P6-C的减伤工作也就止步于此了。
可能有细心的读者发现P6-C第一张表的表头备注了一句“中场无代奏直入循环”,相比原视频A消延迟后w11再进循环,二者有什么差异么?从数据上来说,是有的。下面贴出开A的表:

旧表,只测了一共30次选卡
单次平均比上面那张(同步激活的)表低一些,究其原因就在于中场是否代奏。如果代奏,则w10~w12连续追加三运算量,w11切入循环,存在两个有伤片段;如果w10直入循环,则存在w13&w16&w19三个有伤片段,直觉上讲炮损确实会偏大。不过这部分问题见仁见智,可能有人觉得多出来的这点炮损无所谓,有人认为多那150阳光无所谓,至于二者孰优孰劣,看你怎么取舍了。
综合上述讨论和表中数据,像这样通过拦截或延后投掷处理红眼的小鬼,本文中视为已消除威胁/没有威胁。
比起施垫,更简单的办法是加运算量。都改332了,那干脆一步到位333吧。由此导出另一个解P6-N:
|PD/P|P/PD|PD/P|P/PD|PD/P|ND|
相较于P6-C省去了垫材,而且根据上述讨论,每波的小鬼都没有威胁;经济方面,一次选卡施两核一冰共计600,适当拖个收尾涨100+没什么问题。原视频(现已换源)还带了双小喷在各自半场的PD波交替施垫构造延后投掷,实则完全没有必要。当时写这个解的时候没有注意到这个华点,现在通过分析下表给出的数据,你可以发现在这个解中强塞垫材反而是在帮倒忙:

有垫,且垫一五路

无垫
有垫解单次平均为4.8,是无垫解的2.5倍。原因其实很好解释,有垫一侧为PD波,P波红眼会在PD波投掷,本来应该被D拦掉的小鬼由于垫材延后投掷给扔出去了,炮损不增就有鬼了。
既然P6可以,那压制更强的S6当然也行咯。这里直接给出轨道:
|PD/P|P/PD||PD/P|P/PD|IPP-PP|
得益于冰强大的控场能力,S6解同样不需要垫材(原视频错误之处*2),也不存在有伤片段,炮损测试见下表,个中细节不再赘述。经济方面,一次选卡用四冰共625,略高于P6-N,但适当拖尾一样能涨100+。

有垫 ,且垫上半场

无垫
有垫解单次平均是无垫解的12倍,后者则成功把单次炮损压进了1。百F合炮损仅20,结合出怪机制和测试样本量,要造成这个级别的炮损大概需要连续冲关850F;考虑到自然出怪的特性,若把红眼关下半场的出红概率也纳入考察范围,则估计续航轮数会极大延长。诚然100F测试的样本量在如此庞大的冲关数面前微不足道,但新解的优越性于此可见一斑。
其次是变速。讨论这部分内容之前要先搞清楚变速相比全难度差在哪。
对jd16和以上三个新解而言,变速没有白眼,延后投掷行不通,所以取巧依赖这一套的P6-C势必会被打回原形;相比之下P6-N和S6就不受掣肘,依旧发挥稳定。测试为统一变量将白眼替换成了投篮以保证红眼数量和全难度测试基本一致,除此之外没啥说的,上数据吧:

拉了,看到没


喜提本次测试首个全0
注4:“控制红眼数量和纯巨人测试基本相等”,变速测试中红眼数量为每次选卡494只
其中S6甚至能保持测试全程0炮损,惊不惊喜意不意外(
数据和结论的初步整合
对绝大多数阵来说,阳光不是万能的,但没有阳光是万万不能的。上面写了这么多都是虚的,归根结底是要达成“可无尽”这个最基本的目的。前文所示的解随便拷一个都能跑,但能不能跑得既平稳又省力,则需要我们考察并找出最划算的那个,考察的点有两个,就是经济和炮损。
我们都知道在所需支出相等的情况下,炮损越低越好;在炮损基本相等的情况下支出越少越好;那么问题来了,在炮损和支出都不等的情况下如何评判?这就需要建立二者之间的平衡关系了。在常人的认知里,炮损会随支出的增加而减少,是非正相关的。此处暂时把炮损和支出简单做乘法,得出结果如下:
P6 18972;P6-C 2064;P6-N 1152;S6 250。
咳咳,看看就好。毕竟我一没翻到资料,二不具备相关经验,仅凭直觉未免太过主观,若简单粗暴地将补炮的1250阳光与300满血炮做乘除折算又有失严谨。比起可能造成的误导,还是不说结论为好。这部分内容且寄希望于有能力的读者完善,本人水平实在有限,就不在此胡诌了,太尴尬。
尾声
关于jd16解的部分的讨论到此为止。jd16到底是个怎样的阵,看到这里,想必读者心中已然有谱。说它好,它简单粗暴、不拘小节,运阵直接明了;说它次,它又过分阳刚、不顾细节;做阵如做人…抱歉,串台了。优于它的艺术数不胜数,假于它的残局比比皆是。但不管怎样,它优劣与否,这都不重要了。强调实践是检验真理的唯一标准,本文也只不过是通过重拾jd16这一“经典”,复现一遍从初中就讲授过的所谓“好的学习”的几个步骤,至于前文提到的大纲还不清楚能否公之于众。新奇的事物经常昙花一现,而美妙的灵感总是过眼云烟。待到若干年后故地重游再观此文,一定会倍生感慨吧。
Ref.
测试框架:AvZ
使用工具:Show Me
本文最后编辑于2022.09.13