Slay the Spire

Slay the Spire

118 ratings
塔学基础:牌序、事件与随机数
By 青玉
本篇作为塔学入门篇,以牌序、事件、随机数三个常见的方向出发,对其中规律进行阐述。
   
Award
Favorite
Favorited
Unfavorite
什么是塔学?
塔学,也就是对于杀戮尖塔中各类机制的深度解析,如洗牌的机制、各类“随机”词缀的机制、问号中事件刷新的机制,乃至一些利用代码逻辑卡BUG的行为等。

本篇主要从牌序、事件和随机数三个较为常用的方向出发,从最浅显的表象对其中规律进行解析,并分析其在实战中的运用。
塔学基础:牌序
牌序,也就是抽到手牌的顺序。通过sl调整牌序,以获得理想的战斗结果,是熟练玩家提高胜率的重要方式。

杀戮尖塔中洗牌同样有一套随机数——但这套随机数完全独立,并无多少调整的空间,除在二层事件“竞技场”外并无应用,这里不展开说明。
*凹毒种时倒也可以考虑调整这套随机数,但我从没见过有人用——毕竟太浪费时间了。

而这套洗牌最终的结果为:弃牌堆第n个牌在某次特定的洗牌中一定会洗到第m个位置,无论这张牌是什么。

即,假如一个卡组中仅有一张打击和一张防御,且先出打击后出防御,洗牌后先抽打击而后抽防御,那么在交换出牌顺序后抽牌的次序同样会交换过来。

理解了这些,那么你就已经明白最基本的改变牌序技巧了:假使你在某轮洗牌之后极其鬼抽,需要防的时候手里全是打击,需要输出时手里全是防牌,那么就要去尝试着调整上一轮的出牌次序。

再提一提回合结束弃牌的机制:回合结束时,手牌自右向左进入弃牌堆。

那么对于一些不想打出却依然需要调整位置的牌,是否可以依靠如下图所示的手法来调整其在弃牌堆中的位置,最终达到改变排序的目的呢?

这是初始手牌位置

通过弃牌不断进行调整

最终得到一个不同的手牌顺序

这里本来想插个录屏的,发现不支持插入视频,网上找的转gif又卡的没法看......有人懂的话教我弄一下(

答案是可以——这是稍微进阶一些,但是更常用的技巧——它调整牌序的灵活程度显然远超前一种简单方式。

那么除以上两种方法外,还有什么办法能调整牌序呢?

改变弃牌堆的牌数。

当弃牌堆牌数改变后,洗牌后形成的抽牌堆自然也会大变样——这是很好理解的。

所以,我们可以通过不打能力牌、多打能力牌、不消耗状态牌、多消耗状态牌、自己给自己多塞一张牌等等方式,来调整弃牌堆中牌的数量,进而达到改变牌序的目的。

而上述两种方法之间是并行不悖的,二者交织在一起,产生了大量可能的世界线与出牌方案。而如何在不断的sl中,寻找到一条较为理想的世界线,就是改变牌序的最终目的,也是其乐趣所在。
塔学基础:事件
关于尖塔的事件规则本身,其实没有太多可以讲的东西。所以我把随机变换牌的规则和随机升级牌的规则,也同样集成到这里来讲。

事件规则,也即问号点位的规则。由于某种未知的逻辑,在第一次sl时,问号中所出现的事件会发生改变,但在后续sl时,将不会发生变化。所以假如事件不太理想的话点名女鬼,可以尝试sl一次。

值得一提的是,假如问号中出了小怪,且在你战胜它,进入战利品环节后sl,事件同样可能会发生改变,且你在战利品页面时的血量会被认定为进入该问号房间时的血量,也就是战斗中掉血的话就白掉了。这是我在一次掉了二十血打完小黑后顺手sl留下的血的教训,警钟长鸣。

事件规则讲完了,我们来讲变牌的规则:

进行“变化”时,最终得牌的结果会随原牌的以下情况产生变化:稀有度、费用、是否消耗。

其中稀有度分为四等:初始卡、白卡(普通牌)、蓝卡(罕见牌)、金卡(稀有牌)

其中是否消耗对结果的具体影响至今未能找到明确规律。但这无伤大雅:只需要通过不断sl,把各种牌都变一下就好了。

最后讲随机升级的规则:

随机升级同样依据随机数决定,但这套随机数基本没有操作的空间,所以改变随即升级的结果,主要是依靠改变牌数来完成。

随机升级攻击牌时,请改变攻击牌牌数;改变其它种类牌数将是无效的行为——其他情况同理。



塔学基础:随机数
到了本指南中的重点环节。

从之前的两小节我们已经看到,随机数堪称是尖塔这款rougelike游戏的根基,而对随机数的掌控,无疑将大大提高玩家在尖塔之中所能达到的上限。

那么先来介绍一种常用的随机数:

通用型随机数:可能是程序员为了偷懒搞出来的随机数序列,涉及大多数战斗内行为,如技能药水、攻击药水、白噪声等的印牌和发泄、心脏塞的五张状态牌等所处的位置、疯狂、勺子、电球一类的随机行为等等等等。

那么它有哪些应用呢?

调整药水印牌。我们已经得知,包括树枝、白噪、他山之石、攻击药水这类共用一套随机数,所以可以利用调整随机数来改变其中印出的牌。更形象地说,这场战斗印的第某张牌有一个序列号n,而印牌行为就是根据这个序列号来选取可能印出牌池中的牌。所以,只要通过调整这套随机数,即可调整印出的牌。

调整电球、狂乱撕扯、诸神之黄昏等随机攻击的目标。这个很好理解:电球进行随机攻击时的目标同样由序列号n决定,只需调整n,即可改变电球攻击的结果。

改变塞入状态牌的位置,调整牌序。这个用的相对少一些,不过也不算冷门。调整随机数即可改变向抽牌堆中随机塞牌所指向的位置。例如观者先使用他山之石后使用发泄,和先使用发泄后使用他山之石,发泄回到抽牌堆后所处的位置会不一样。当然,更常见的应用在于调整心脏塞的五张状态牌的位置,来获得一个相对理想的牌序。

那么我们可以通过哪些手段调整随机数?

印牌。选n印1的行为会使随机数序列向后n个。如他山之石可以过掉三个随机数,树枝印一张牌则只能过一个。
这里需要提及特殊牌:发现。萌新可以不看后面这些带来不幸的内容
发现的代码逻辑为在0.25秒内每一帧读取三个随机数,并使用第一组随机数作为发现本身印出的牌。换句话说,改变游戏帧率可以调控发现过掉的随机数数量。60帧时可以过掉45个随机数,240帧可以过掉180个随机数。


随机攻击。每进行一次随机攻击的判定,即可过掉一个随机数,无论场上有几个敌人。如电球在仅有一个敌人的情况下进行一次攻击同样会过掉一个随机数。值得一提的是,开启能力牌“电动力学”之后,电球将不再产生随机数。

蛇眼。蛇眼能产生大量的随机数——混乱每影响一张可以被影响的牌(即伤口、灼伤等不算在内),即可过掉一个随机数。蛇油同理。

疯狂。疯狂的机制为读取一个随机数,并依此赋予手牌中某张牌零费,假使这张牌已为零费或不能被改变费用,则再次读取一个随机数。所以,可以通过改变手牌顺序给疯狂的方式灵活地产生随机数。值得一提的是,当手牌中所有牌均无法被疯狂影响时,疯狂不产生随机数。

而除这种最常用的随机数外,我们再介绍一些调整空间很小,打个几十局也不见得能用到的随机数,作为使得内容更显完整的补充:

药水随机数。它会影响你所出的药水,即在某些事件(如全知头骨)中你可以提前看到后面会出的药水。商店中产生的药水疑似会打乱这个序列,但规律不明显,暂未发现应用价值。

卡牌掉落随机数。它会影响战斗结束后掉落的卡牌。而出现一些与常规战斗不同的卡牌掉落(如精英掉落、商店刷牌)会打乱这一序列。一般是商店看到星系仪,发觉后续牌组掉落不理想时改变路线以求改变卡牌掉落所用。此外,问号房间同样会一定程度上打乱这一序列,但规律不明显,暂未发现应用价值。
*远古版本时他山之石是会影响这一序列随机数的,目前应该已经改了——但我没见过测试结果,故此一提。

洗牌随机数它会影响每次洗牌的结果。值得一提的是,每场战斗开始时,都会进行一次洗牌,将你卡组中所有牌洗入抽牌堆。所以改变前一场战斗的洗牌次数、调整这一随机数是可以改变下一场战斗的开局牌序的——但sl的成本实在过大,所以我从没见过有人真用这个凹毒种。更常见的应用在于二层的竞技场事件。竞技场事件中有两场相连的战斗,通过sl改变前一次战斗的洗牌次数即可改变后一场战斗的牌序。

遗物掉落随机数。影响你的遗物掉落。没有任何调整空间,除了提前看遗物之外没有实际运用。
遗物掉落机制:掉落遗物时,先确定掉落遗物稀有度,随后读取这一随机数序列从对应遗物池中获得遗物。值得一提的是,不同稀有度遗物的随机数序列互不影响






10 Comments
冰冷的脚丫子 1 Jun @ 9:31pm 
RyanOldman 23 Apr @ 12:26am 
太强了!顶
928qq 2 Apr @ 5:00am 
非常的硬核
Neo 18 Mar @ 1:58am 
牛的 不过没人看steam攻略欸
虹夏 Prime 5 Dec, 2023 @ 5:38am 
感谢
uopuɐqⱯ¯ɹǝʇsɐꟽ 21 Apr, 2022 @ 2:32am 
6
青玉  [author] 27 Mar, 2022 @ 3:23am 
的确如此,已修改在正文
adj 26 Mar, 2022 @ 9:23am 
据某主播的结论,发现消耗的随机数不止三个,而是每一帧三个?
青玉  [author] 22 Feb, 2022 @ 7:40pm 
完成啦!此外,文中许多理论均基于作者的印象写出,写这篇指南时没有另行验证,欢迎大家指正!
青玉  [author] 21 Feb, 2022 @ 6:49am 
写到随机数这里......卡文了,东西太多得理理顺序。后面几天开学比较忙没什么时间,先放出来将就看吧(