公司动态

游戏机制拆解:多层效果的独立到期时间 · 场景15


多个效果层分别加入时,未必共用一个结束时间。每层保存自己的到期点,才能说明为什么稍早获得的一层已经消失,稍晚获得的另一层还在。

这一篇用一组公开的自定义数据拆开计算过程。可以先遮住结果,依照约定逐项填写自己的记录,再用文末的复核办法检查。案例关注的是规则边界和状态变化,并不替任何具体作品规定玩法。

本次规则与数据

本例到期时刻本身不再生效。每次先移除到期层,再尝试添加新层;达到层数上限时,新层整次忽略,已有层的结束时间不会被刷新。

处理当前时刻前先删除到期点小于或等于现在的层;还有空位才记录新层自己的结束点。

最多3层,层编号从0开始 加入时刻[2, 3, 5, 11, 12, 14, 16, 20, 22, 24] 对应持续时间[4, 7, 8, 9, 8, 2, 3, 7, 9, 3]

按顺序处理

时刻2尝试添加第0层,持续4:接受;仍生效的“层号、到期点”为[[0, 6]]。

时刻3尝试添加第1层,持续7:接受;仍生效的“层号、到期点”为[[0, 6], [1, 10]]。

时刻5尝试添加第2层,持续8:接受;仍生效的“层号、到期点”为[[0, 6], [1, 10], [2, 13]]。

时刻11尝试添加第3层,持续9:接受;仍生效的“层号、到期点”为[[2, 13], [3, 20]]。

时刻12尝试添加第4层,持续8:接受;仍生效的“层号、到期点”为[[2, 13], [3, 20], [4, 20]]。

时刻14尝试添加第5层,持续2:接受;仍生效的“层号、到期点”为[[3, 20], [4, 20], [5, 16]]。

时刻16尝试添加第6层,持续3:接受;仍生效的“层号、到期点”为[[3, 20], [4, 20], [6, 19]]。

时刻20尝试添加第7层,持续7:接受;仍生效的“层号、到期点”为[[7, 27]]。

时刻22尝试添加第8层,持续9:接受;仍生效的“层号、到期点”为[[7, 27], [8, 31]]。

时刻24尝试添加第9层,持续3:接受;仍生效的“层号、到期点”为[[7, 27], [8, 31], [9, 27]]。

最后剩余层为[[7, 27], [8, 31], [9, 27]],层数3。

核对与应用

在任意观察时刻,留下的每一层都必须已经成功加入且到期点严格晚于现在。被上限拒绝的层不应出现在后续记录里,也不应延长其他层。

与“再次获得就刷新全部层的持续时间”相比,这种规则会让层数逐步减少。阅读说明时应确认究竟是哪一种;两种都能实现,但不能把一个算例的结果套到另一种规则上。

若实际观察与这个模型不同,先确认操作顺序、编号起点和边界是否包含,再检查是否漏记了前一步状态。每次只改变一个条件并保留原记录,通常比反复重做整段操作更容易找到差异。明确条件后,才适合把同一种方法应用到新的场景。