[域外杂谈] 《三国杀》——用数据结构解释“无次数限制”与“不计入限制次数”

《三国杀》是一款“久负盛名”的卡牌游戏,其颇具特色的卡牌机制设计与牌局间各武将相互配合打出的精彩操作令人流连忘返,随着武将推陈出新,他们的技能描述也从简单的“一句话”变成了绕口而难以理解的“小作文”,然而这正是我们练习逻辑思考的好机会!比如,游戏中(这里特指《三国杀》移动版)有以下两个武将的技能描述令人困惑:(就不放武将图了免得侵权)


  • 许攸【成略】:……若如此做,直到本回合结束,你使用与弃置牌相同花色的牌无距离和次数限制
  • 张星彩【枪舞】:……你可以进行判定,然后本回合你使用点数小于判定结果的【杀】无距离限制,点数大于判定结果的【杀】不计入限制的使用次数且无次数限制

许攸【成略】的“无次数限制”与张星彩【枪舞】的“不计入限制的使用次数”似乎在语义上并没有什么区别,都是无限制使用牌嘛!那后者还跟一个“无次数限制”,岂不是画蛇添足?

答案是非也,二者完全不是一个概念,诸位且听我用数据结构中的栈来解释区别,保证让大家豁然开朗~

这里我们用《三国杀》中最经典的卡牌“杀”来举例。

《三国杀》中有一条基本规则——即不考虑武将技能(如张飞【咆哮】)与装备(如诸葛连弩、青龙偃月刀)的影响,每名角色各自出牌阶段只允许使用一张杀指定另一名攻击范围内的其他角色(注意不是打出,锦囊牌决斗要求双方轮流打出杀,不在此限制内)。
PS:另一张卡牌“酒”的机制与杀类似,诸位若感兴趣或者干脆就是玩家可以自己思考套用,这里不再赘述。

知晓了这条基本规则后,我们将其“数据结构化”。假设每名角色在其出牌阶段会获得一个名为“杀”的栈,深度为1(大家留意这个栈的颜色),如下图所示:

最基础的“杀”栈
根据规则,当前角色出牌阶段若使用一张“杀”指定一名攻击范围内的其他角色后,无论对方响应与否,本回合都不能再使用“杀”,相当于该栈被压入一张“杀”,则本回合栈已满,不能再压栈,直到下回合出牌阶段重新获得一个空的“杀”栈。游戏中对于一个角色能否继续出“杀”,就通过这个绿色的栈来界定。

那么“不计入限制的使用次数”该如何表示?

这就相当于在这个基础的“杀”栈旁边新开了一个“不计入次数限制”栈,该栈的深度为无穷大(理论上),如下图所示:
在这里插入图片描述
也就是说,根据技能的描述,凡是属于“不计入次数限制”的“杀”,通通只能压入右边的“杀”栈,然而一个技能并非神通广大(这里不考虑的3种情况:技能与装备导致可以无限出杀如【咆哮】和诸葛连弩、追加杀如青龙偃月刀、直接给绿色“杀”栈扩容的武将技能(这里扩容的深度都是绿色的,不要与后面混淆)),有“不计入次数限制”的“杀”,就有不在技能涉及范围的计入次数限制的“杀”,那么这些计入次数限制的“杀”只能投入左边的绿色栈里,一旦该栈被压入了一张杀,则在“不计入次数限制”之外的“杀”不能再发动,当然这不影响“不计入次数限制”的“杀”继续压入右边的栈。结论是:描述为“不计入次数限制”的“杀”应当在一般的“杀”之前使用,使用过一般“杀”后,绿色栈满,不允许再使用“杀”

“无次数限制”又该如何表示?

话不多说我们先上图:
在这里插入图片描述
这个描述的机制是,在原有的绿色栈的基础上,扩展出黑色的无限深度的部分,但是注意,游戏对于本回合出牌阶段内排除技能与装备影响下出“杀”次数仍由栈的绿色部分决定。具体来说,满足技能描述中“无次数限制”的“杀”可以无限制的压入这个栈中,但是此时该栈的绿色部分是最先被压入的,意味着即使这些“杀”无次数限制,但是也占用了本回合出“杀”的次数,此时那些不在“无次数限制”描述内的“杀”就不能被压入栈中(也就是不能被使用),当然这也不影响“无次数限制”的“杀”继续压入这个扩展后无限深的栈。结论是:一般“杀”应当在“不限制次数的杀”之前使用且只能使用一张,之后可以使用任意张“不限制次数的杀”;若先使用“不限制次数的杀”,则一般杀不能使用

总结:想要得到最大收益,应先使用“不计入次数限制的杀”,再使用“一般的杀”,最后使用“无次数限制的杀”~各位看官想必都已了然。


这只是《三国杀》武将纷繁复杂技能中的冰山一角,类似的情况还有很多。然而正是这样粗中有细、需要思考与实践的技能设计与严谨的牌局规则才更加令人喜欢玩界徐盛着迷,欢迎大家来玩《三国杀》!

本期[域外杂谈]就写到这里了~

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝莲花正开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值