用暂存调整方块顺序
讲解如何用暂存让方块的放置顺序不同于出现顺序,以及在全消堆叠中调整顺序的思路、能排出与排不出的顺序和几种典型模式。
方块出现的顺序是定好的,但放的顺序可以用暂存来改变。在全消堆叠中,“需要的方块明明看得见,顺序却对不上”的场面会一再出现。本页整理用暂存能排出哪些顺序、排不出哪些顺序。暂存的基本规则请先阅读“暂存(Hold)的用法”。
暂存能做的是“把 1 个方块往后放”
暂存是把当前方块先搁到一边的功能,而且只能搁 1 个。收起来的方块,之后可以在任意时机拿出来。也就是说,暂存是把 1 个方块想推迟多久就推迟多久的功能。
这 3 个方块,可以排出下面 4 种放的顺序。
| 放的顺序 | 做法 |
|---|---|
| I → T → S | 不用暂存。 |
| I → S → T | 放 I。暂存 T,放 S。取出 T 放下。 |
| T → I → S | 暂存 I,放 T。取出 I 放下(S 进入暂存)。取出 S 放下。 |
| T → S → I | 暂存 I,依次放 T 和 S。最后取出 I 放下。 |
而以 S 开头的顺序(S → I → T 和 S → T → I)是排不出来的。因为要轮到 S,就得把 I 和 T 都往后放。而暂存里只能放 1 个。
例 1:有的方块要先放别的才放得进去
这个残留形状可以用 T 和 I 填满,但顺序是固定的。假设出现顺序是 I → T。想先放 I,却没有通往下面一行的路,因为从上方能看到的空位只有 2 格宽。
像这样,全消堆叠中经常出现“放了这个方块消掉一行,下一个方块的入口才打开”这样的顺序限制。如果出现顺序相反,就用暂存调换。
那么,如果出现顺序是 I → S → T 呢?T 排在第 3 个。暂存 I 之后下一个是 S,但 S 在这个残留形状里哪儿都放不进去。很想把 S 也暂存起来,可暂存已经被 I 占着了。按这个顺序无法全消。
例 2:把用不上的方块留在暂存里
假设出现顺序是 T → O → L。T 在这个残留形状里用不上。这种时候,就把 T 放进暂存,一直到最后都不拿出来。暂存 T,放 O,放 L,就是全消。
4 行全消用 10 个方块完成,但因为有暂存,实际上可以从 11 个里挑 10 个来用。可以决定有 1 个方块“不用”,这会大大提高成功率。不过能躲开的只有 1 个。用不上的方块连着来 2 个的话,其中一个就只能放下去。
例 3:把之后要用的方块提前存起来
暂存只能“往后放”,所以没法把排在后面的方块提到前面来。不过,可以把之后可能用得上的方块在它来的时候就存起来。
比如,已经知道填满残留形状需要 I,那么 I 一来就暂存。之后用别的方块整理残留形状,等能放 I 的位置一出现,就从暂存里拿出来。像 I 和 T 这样“能放的位置有限,但能一锤定音”的方块,很适合这种用法。
步骤的安排方法
- 决定用哪些方块。想出能填满剩余空格的组合。不用的方块最多 1 个。
- 确认放的顺序有什么限制。垫在下面的方块、消行后打开入口的方块,必须先放。
- 确认按出现顺序能不能排出来。把“最先能放的是排在最前面的 2 个之一”一手一手地套进去。
暂存里已经有方块时,把它看成队列最前面多出来的 1 个,就能用同样的方法确认。