一行格块滑动时,去掉空位与合并相邻同值格是两个不同步骤。若把本次刚生成的格块立刻拿去再次合并,会让一次操作得到超出规则的结果。
本例采用的规则
本例四乘四棋盘统一向左移动。每行先保留非零数字的顺序,从左到右扫描;相邻值相同就合成一个两倍值,并同时消耗这两个输入格,本次生成格不再参与合并。最后在右侧补零恢复四格长度。
独立输入与结果
四行互不影响,每行索引从零开始;合并记录里的索引指压紧后的输入序列。
原行 | 压紧后 | 被消耗的两格索引与新值 | 最终行 | 得分 [2, 0, 2, 2] | [2, 2, 2] | [[0, 1, 4]] | [4, 2, 0, 0] | 4 [16, 2, 2, 2] | [16, 2, 2, 2] | [[1, 2, 4]] | [16, 4, 2, 0] | 4 [0, 4, 2, 2] | [4, 2, 2] | [[1, 2, 4]] | [4, 4, 0, 0] | 4 [4, 0, 0, 4] | [4, 4] | [[0, 1, 8]] | [8, 0, 0, 0] | 8 本次总得分20。
表中的编号仅用于区分当前案例里的对象,不能与数值大小或另一份记录中的身份混淆。先核对输入、单位和边界约定,再跟随过程检查输出。空列表、不存在和数值零各有不同含义,分数则保留精确形式便于复算。
检查与练习
每行移动前后数字总和保持,合并会减少非零格数量。合并得分单独累计本次生成的新数字值,不等于棋盘总和变化。四个相同格会合成两个新格,不能在同一次移动里再变成一个更大的格。
逐行标出哪些原格参与一对合并,保证同一个原格只用一次。再把输出当成下一次独立移动的输入,观察第二次才可能发生的变化。相同的方向连续按两次属于两次操作,不能为了计算方便把它们合并成一条指令。
结论适用范围
这里是自定义的同值合并练习,不引用任何产品的额外规则。没有随机生成新格、撤销、连击奖励或终局判断,因此不要把实际游戏里移动后增加的数字也算成合并过程本身改变了总和。
这是一份可重复演算的游戏知识记录,结论只对写明的输入与规则成立。练习时可以先改变一个条件,再对照中间记录寻找变化从哪一步开始。若结果不同,应先确认操作顺序和边界定义,而不是只改最后一个数字;原始输入与完整过程应一起保留。
