三国杀夜谈:回合的开始与结束
众所周知,三国杀有部分奇妙的结算,例如:
每轮开始时早于游戏开始时。

一轮结束时会被翻面吞掉。

当前回合角色是你但此时不是你的回合内。
每回合限一次如何在夹缝中生存?

这一切的一切,都有一个共同的原因。
探寻问题的答案,让我们一起走进科——
不是走近科学。

免责声明:以下均为个人观点,根据实际结算与四年前更新的规则集2.2内容,对近年来的新武将结算进行个人认为的较为合理的推测。
以下内容不代表正确,仅供参考,或者当个乐子看看打发时间。
★众所周知,三国杀是一款回合制的游戏,所以构成游戏的主体是连续不断的回合。
★从首回合开始,连续不断且没有缝隙的一个个回合紧密相连,构成一整个牌局,直到触发游戏结束的条件。
☆并不是说八人局八个回合才是一个周期,实际上每个回合就是一个周期。
☆游戏开始时这个时机在第一个回合有技能有操作,第二个回合依然会经历这个时机只不过没有技能没有读条,直接快速略过,再往后每个回合都有这种没有任何意义但也不会跳过的时机存在。
★本文分为十个部分,由浅入深进行分析(和推测)。
☆纯文字警告:看不下去纯文字的现在可以选择退出。

第一部分、技能描述里的“游戏开始时”
★游戏开始时,首次作为技能时机提出,应该是火包的七星。设计师本意是增加神诸葛亮的起始手牌并挑选七星。实际呈现为游戏开始时牌堆顶放星并可以交换。
☆与之类似的还有神刘备的结营和武诸葛的尽瘁。结营设计本意应该就是神刘备直接横置登场,而不是游戏开始时横置。但是程序员选择了后者。
☆武诸葛亮的起始手牌七张也类似。但是十周年有增加起始手牌的将灵装备啊,说明程序上是可行的。所以改成游戏开始时摸三纯粹削弱脚气卡。
第二部分、“游戏开始时”的当前回合角色
★由于三国杀的底层就是连续不断的回合紧密连接,就导致游戏开始时并没有合理的空隙,只能放在首回合较早的时机里。
☆以规则集2.2为例(下文同,规则集2.2以十周年结算为基础,与以OL结算为基础的规则集1.0里时机略有不同,但是不影响本专栏),将技能描述时机为“游戏开始时”的技能放在了回合开始后③依次发动。
☆早年出现的老李儒主公,神诸葛换四张七星和手牌的时候触发绝策的结算。也能间接说明“游戏开始时”技能结算期间,当前回合角色是一号位。之后新增了回合开始后⑥作为回合内外的分界线,所以触发了绝策。
☆与之类似是十周年文和乱武模式的开局乱武。游戏开始时从随机一个位置乱武,此时触发饰非是一号位摸牌。因为一号位是当前回合角色。
第三部分、技能描述里的“轮”
★一轮很好理解,就是所有角色依次行动,依次进行过其额定回合(放权的是额外回合)称为一轮。
★首个涉及轮的技能应该是陈情。第二个是悍勇。再然后是卫境和游龙。除悍勇外,这几个技能都是将轮,作为一个时间段来限制发动次数用来限制强度,所以其实改成每八个回合限一次也大差不差(当然也是有区别的,区别就是每天0点刷新次数的将印宝箱和每隔24小时刷新次数的免费祈福,前者每天什么时候上线都行,后者只要有一天晚了之后每天都得晚)。
★而悍勇则更为简单粗暴,只是将轮当做一个数值来看。其实就和那些数牌堆剩余牌数的一个性质。
第四部分、“每轮开始时”的初次尝试
★纵傀,在体验服刚上线时纵傀只有自己回合发傀,后来补强加上了每轮开始时。
☆按理来说这两句话应该是两个时机互不干涉才对,但是程序员把两句话写在了同一时机,就导致:
1.前半句回合开始时与其他回合开始时不同,卑弥呼本人翻面也能发一个傀然后才翻回正面跳过回合。
2.后半句每轮开始时也维持这个设定,又因为主观上认为游戏开始时最早,就把后半句时机放在了游戏开始时后一个时机,又因为不能因为一号位翻面而跳过“每轮开始时”,就把纵傀时机放在了翻面回来时机“回合开始后⑤”之前。
☆对于规则集1.0来说相当于凭空加了时机,当时暂记为“回合开始后4.5”直到规则集2.2将原有的回合开始后③和④合并,纵傀时机才占据了现在的回合开始后④。也是独一无二。
第五部分、十周年里的“每轮开始时”
★所以按照上面的说法,每轮开始时的技能只要写在回合开始后④,那就符合一贯的认知和逻辑了。可是十周年的程序员偏不。根据实际结算,虽然看不出来是将每轮开始时写在了回合开始后①还是②,但肯定比③要早。
★就出现了第一轮先发动每轮开始时的技能后发动游戏开始时技能的现状,和主观认知上出现偏差。
★想“修复”也很简单,把幸宠、落宠、密运的时机放在和纵傀一样就行。
☆不赚钱的事免谈是吧?
第六部分、与之对应的“每轮结束时”
★上面谈到的时机用规则集语言来说都是“回合开始后”。而每轮结束时,显然要先研究一下规则集里的“回合结束前”。
★结论是没什么可研究的,按照本意,一轮结束时应该不属于任何角色回合内,顶多当前回合角色是末置位角色。但是规则集里回合结束前最后一个时机“回合结束前⑦”是回合内外的分界线,就导致“每轮结束时”的时机要么在这之后新增时机⑧,要么与之同时机(同时机当前回合角色先结算,一般每轮结束时技能不是当前回合角色的,就靠后)。
★OL夏侯玄则选择了讨巧的方式,将“每轮结束时”放在了下一轮开始。迮阅被杀的时候,短兵发动饰非是一号位摸牌。这个被杀的时机很像十周年幸宠落宠的时机。
第七部分、回合的中断
★那么为什么十周年结算中,末置位角色被翻面会影响该轮的“每轮结束时”呢?让我们回到翻面时机“回合开始后⑤”。
★回合开始后⑤的效果:将背面朝上的武将牌翻至正面,然后跳过当前回合之后所有时机,直接快进到下一名角色的“回合开始后①”。每轮结束时一般都放在“回合结束前⑦”,则会因为此效果而被跳过。

题外话:何为“跳过”
回合时机相当于一条时间轴,跳过的作用则是将本应随时间流动而出现的时机不再出现。
☆跳过一个阶段就是以这个阶段开头的时机不再出现。
★一个很常见的“跳过”现象就是一名角色在其自己的回合内死亡。若此时回合时机还未到“回合结束前①”,则死亡结算后把当前的回合时机结算完,下一个直接跳到回合结束前①。常见的操作就是张松献图之后该角色出牌阶段自杀,跳过“出牌阶段结束时”导致张松不会失去体力。
★十周年还有一个跳过,就是周宣。周宣发动寤寐的时候已经到“回合开始后⑨”了。然后他中断这个回合,令一名角色开启寤寐回合,该角色寤寐回合结束之后,按理说周宣应该从回合开始后⑨,继续之前被中断的回合。但是回合都是从头开始走的,没有从中间开始的,就导致周宣再次获得一个完整回合,从回合开始后①到回合开始后⑨又经历一次。吴范周宣三次天运的结算也由此诞生。
题外话结束

★因此十周年周善的密运给牌部分的时机会因为末置位翻面而被跳过,此结算暂时可以认为是对的。当然我个人还是希望他改一改,至少和技能效果统一一下,要么加个时机要么学隔壁迮阅放到下一轮开始。
第八部分、当前回合角色,回合内回合外分界线
★当前回合角色是A,但此时并不是A的回合内。这种情况会发生吗?答案是会。
★上面也有说到,实际上的回合开始包含了一堆前置时机用于检测轮数变化、游戏开始、翻面状态等。而技能描述里的“回合开始时”在规则集里是“回合开始后⑨”(十周年更过分,还有一些技能描述为“回合开始时”的技能直接放在了“准备阶段”)。
☆已知“回合开始后⑥”是回合内的边界。那么前面五个序号的时机各有什么作用。为什么⑥和⑨之间还有两个时机?
第九部分、规则集中的回合开始后与回合结束前
★回合开始后①:检测轮数是否需要+1。
★回合开始后②:新1V1模式中发动登场技的时机(骁袭)。
★回合开始后③:游戏开始时。从第二个回合开始这个时机就没有作用了。(特殊地:OL宗祚加体力上限也是回合开始时,但是时机比其他游戏开始时要略晚。不论位置。)
★回合开始后④:纵傀专属时机。包括每轮开始时的纵傀和卑弥呼回合开始时的纵傀。历史遗留问题。
★回合开始后⑤:若背面朝上则翻至正面并跳过本回合后续时机。若正面朝上则此时机没有作用。
★回合开始后⑥:作为回合内和回合外的边界。令一些回合外的效果失效(例如大雾),同时回合内的效果生效。
☆回合开始后①~⑤,虽然当前回合角色是你,但是不属于你的回合内。OL经典的结算:翻面马良回合开始陈群法恩,既不会多摸(不是回合内)也不会丢掉(跳过丢牌时机)。
★回合开始后⑦:国战模式用于选择是否明置武将的时机。若武将牌均明置则该时机没有作用。其他模式里该时机也没有作用。
★回合开始后⑧:OL当先在flash时代的专属时机。改为h5之后当先时机也和十周年一样放在了“回合开始后⑨”。就导致回合开始后⑧现在没有任何作用。
★回合开始后⑨:大部分描述为“回合开始时”的技能的触发时机。只不过十周年里这些技能的实际时机大部分都放在了准备阶段。
☆然后接下来的时机为六个阶段的:开始前、开始时、主阶段、结束时(出牌阶段的主阶段由若干空闲点组成)。结束阶段结束时下一个时机就是“回合结束前”,也分为①~⑦,七个时机。
★回合结束前①:OL约等于突破前放权的专属时机。十周年则是将大量回合结束前②和③的技能全部合并到了这里(更为离谱的是,这些技能描述大多数是“回合结束时”甚至“回合结束后”,但是实际上有一些还被整合到了“结束阶段”发动)。
★回合结束前②:以前用于发动连破、戚乱、狼灭、化身、平寇、博图等技能。以及各种往自己脸上放牌技能把牌拿回来的时机。现在该时机没有用处。
☆其他角色回合能发动的应该没被整合到结束阶段,因为当前回合角色死亡也能发动。放结束阶段就没时机了。而自己回合发动的就被放到了结束阶段。
★回合结束前③:以前用于国战凶算恢复限定技。现在该效果也放在了回合结束前①。所以现在该时机也没用处。
★回合结束前④⑤:这两个时机用于清除部分技能的隐藏标记。没什么规律和共性。
☆所以回合结束前①~⑤草率一点的话,当成一个时机都行。本身①~③已经整合在一起,④和⑤都是隐藏操作。
★回合结束前⑥:国战模式移出游戏的【敕令】执行效果的专属时机。其他情况下该时机没有作用。
★回合结束前⑦:对应上方回合开始后⑥,是回合内和回合外的边界。
●至此一回合结束,下一个时机是下一名角色的回合开始后①。
第十部分、解围期间每回合限一次技能的检测(可外推至游戏开始时)
★上面说了那么多当前回合角色不为回合内的废话。实际上影响比较大的技能除了回合开始时那一批之外,只有一个解围(法恩影响比较小)。
★有一些“每回合限一次”的技能,检测方式可以简单分为两种,一种是在两个“回合开始后⑥”之间只能发动一次,另一种是在两个“回合结束前⑦”之间只能发动一次。而解围是在“回合开始后⑤”执行的。
★以带梳子的曹仁联动垂涕来看。如果是前者,那么曹仁此时解围弃牌能否垂涕取决于曹仁前一名角色的回合有没有发动过垂涕。如果是后者,则此时能发动垂涕,但是曹仁后一名角色回合内不能再次发动。
★游戏开始时也可以此类比。之前做怀远蒺藜的时候也测试,可以良姻不能垂涕(现在两个都不能了)。良姻就属于后者,垂涕则属于前者。
★避免这种问题检测的bug也很简单,在两个边界上都进行检测。但是这样问题又来了。
☆曹仁解围垂涕杀沮授。此时由于不处于任何角色的回合内,那么矢北应该不应该发动呢?
★都有他的道理。就很离谱。

结尾
★四千多个字的废话写完,突然不想发专栏了(还是发了)。我看看能不能压字数,整一个一目了然版(并不会有)。