作者 11分钟阅读

滑块拼图怎么解:3x3、4x4和5x5分步详解

两句话讲完所有方形滑块拼图的解法,再一步一步拆解3x3、4x4和5x5:叠对技巧、识别无解棋盘的奇偶性检查,以及为什么Klotski需要另一套思路。

要解开滑块拼图,先完成最上面一行,再完成它下面一行,一直做到只剩两行;这两行从左往右一列一列地完成,最后剩下的2×2小方阵,只要让空格绕着它转圈,就会自己归位。你唯一需要的技巧,用在每一行和每一列的最后两个方块上:它们要叠成一对一起放进去,而不是一个一个放。

整个方法就这么多,3×3、4×4和5×5都通用。下面会一步一步讲清楚,还会讲到判断一个棋盘到底有没有解的奇偶性检查,以及Klotski和汽车逃脱谜题需要的另一套思路,因为这类谜题里的棋子大小不一。想找个棋盘练手,来这里玩一局:我们的免费Sliding Puzzle在浏览器里就能玩,有3x3、4x4和5x5三种尺寸,每次洗牌都保证有解。

规则:一个空格,而一半的打乱方式无解

滑块拼图是一个方框,里面摆满带数字的方块,只缺一格。任何紧挨空格的方块都可以滑进去,目标是让方块从左到右、从上到下按顺序排好,空格留在右下角。3×3的版本叫8数码,4×4的叫15数字华容道,5×5的叫24数码,名字来自里面方块的数量。

把方块撬出来再随手装回去,你能拼出的所有排列里,恰好有一半永远解不开。滑动永远不会改变一个隐藏的量,叫作奇偶性,用一支铅笔就能检查。从左到右、从上到下读出方块上的数字,跳过空格,数一数有多少对是大数排在小数前面。每一对这样的数,就是一个逆序对。

  • 奇数宽度(3×3、5×5):当且仅当逆序对的个数为偶数时,拼图有解。
  • 偶数宽度(4×4):再加上空格所在的行数,行从上往下数,第1行到第4行。当且仅当这个总数为偶数时,拼图有解。(如果改成从下往上数行,就需要总数为奇数。同一条规则,只是倒过来看。)

举一个3×3的例子。棋盘是1 3 _ / 4 2 5 / 7 8 6,空格在右上角。依次读出来是1、3、4、2、5、7、8、6。逆序对有:3在2前面,4在2前面,7在6前面,8在6前面,一共四个,是偶数,所以有解。四步就能解开:3向右滑,2向上滑,5向左滑,6向上滑。现在换一个已经完成的棋盘,把7和8对调。这是一个逆序对,奇数,无论怎么滑都修不好。

正是这个陷阱的4×4版本,让15数字华容道一举成名。1880年,它在美国掀起一阵热潮,谜题作家Sam Loyd后来声称自己曾拿出一笔1,000美元的奖金,悬赏能把14和15对调过的已完成棋盘复原的人。一个逆序对,加上空格在第4行,总数是5:奇数,所以不可能。这笔奖金从来就没有被领走的风险。任何像样的电子版拼图,都是从已完成的棋盘出发、靠合法移动来打乱的,所以你屏幕上那一局一定有解。被兄弟姐妹撬开过的实体拼图,就不好说了。

3×3(8数码)分四个阶段解开

行从上往下编号,列从左往右编号。“锁定”的意思是:从此以后,空格再也不经过这些格子。

  1. 1号方块归位。让空格绕一绕,把1带到左上角。锁定。
  2. 2号和3号叠成一对。把2放在右上角(那是3的位置,不是2自己的),3紧挨着放在它正下方,也就是第2行第3列。经由第2行把空格移到最上面一行的中间格,绝不能穿过角落。先把2向左滑,再把3向上滑。第一行完成,锁定。
  3. 4号和7号叠成一对,横过来放。把7放在4的位置(第2行第1列),4紧挨在它右边,也就是正中间。沿着最下面一行把空格移到左下角。先把7向下滑,再把4向左滑。左列完成,锁定。
  4. 5、6、8号:转圈。剩下的是一个2×2的小方阵,里面有三个方块和一个空格。让空格朝一个方向绕着它转,三个方块会跟着轮转,直到归位。方向对的话,最多不超过六步;如果转了一圈毫无进展,就换个方向。

为什么要叠对:如果先把2放回原位,3要进角落的唯一路线就得穿过2的位置,于是放3就会把2挤出去。先叠好再转,两步就能让两个方块同时归位。大多数人都要把一个一个放的办法试上好几遍,才肯相信这一点。我们试的次数比大多数人都多。

4×4(15数字华容道):两行、两列,最后转圈

15数字华容道的思路和上面一样,只是多了一个阶段。先按行解第1行(1到4号)和第2行(5到8号),再一列一列地解最下面两行:先9和13,再10和14,最后在剩下的2×2里把11、12和15转回原位。每一行的前两个方块都很简单,一个一个走回去就行。只有最后一对需要技巧。

一行的最后两个方块,一步一步来

下面以第1行为例,1号和2号已经归位并锁定。

  1. 先把4号挪开。如果4在第1行或第2行,把它移到第3行或更低的位置。这样它就不会在第2步时溜进错误的格子。
  2. 把3号放到右上角(第1行第4列),那是4的位置,不是3的。
  3. 把4号带到它正下方的格子(第2行第4列),只移动第2到第4行的方块,让3留在角落里。
  4. 把空格移到第2行第3列,紧挨着4号,同样不碰第1行。然后把第1行第3列上的方块往下滑进空格。现在空格就在3的位置上,3在它右边,4在3下面。
  5. 3向左滑,4向上滑。第1行完成,锁定。

第2行同理:5和6一个一个放进去,然后把7放到第2行第4列,8放在它下面的第3行第4列,空格移到第2行第3列,再用同样的两步:7向左,8向上。

小贴士如果3已经在角落里,4却跑到了3的位置上,你是没法靠转圈脱身的。别跟它较劲:把3从角落里移出来往下放,把4送到第3行,然后从第1步重新开始叠这一对。感觉像是在倒退,但想原地修好,代价更大。

最下面两行,一次解一列

第1行和第2行锁定之后,还剩两行,每行四格:9、10、11、12在上,13、14、15和空格在下。这里不能再按行解,因为没有多余的行可以暂放方块,所以要改成一列一列地横向推进,用的还是同一个叠对技巧,只是横过来。

  1. 第1列(9号和13号)。把13放在9的位置(第3行第1列),9紧挨在它右边(第3行第2列)。沿第4行把空格移到第4行第1列。先把13向下滑,再把9向左滑。锁定这一列。
  2. 第2列(10号和14号)。往右挪一列再来一遍:14放在第3行第2列,10放在第3行第3列,空格移到第4行第2列。14向下滑,10向左滑。锁定。
  3. 最后的2×2(11、12和15号)。让空格绕着这个小方阵转,直到三个方块全部归位,和3×3上的做法完全一样。只要洗牌是合法的,它们一定会归位。

这个方法靠得住,但不算短。计算机搜索最短路线时,任何一局15数字华容道都不会超过80步单格移动,而需要整整80步的局面只有17个。逐行还原要走的步数比这多,但你可以一路做下去而不用停下来想,对人来说,这比步数重要得多。

5×5(24数码)就是多了一行一列的4×4

每个更大的棋盘都能剥成比它小一号的棋盘。在5×5上,先解第1行(1到5号,4和5叠成一对),再解它下面的左列(6、11、16和21号,16和21横着叠成一对:21放在16的位置,16紧挨在它右边,空格在下方,然后21向下滑,16向左滑)。两者都锁定后,剩下的就是由7到10号、12到15号、17到20号和22到24号组成的一个4×4。照上面的方法解它即可,只是要把这些数字当作位置来读,而不是1到15。

你也可以一直按行解到第3行,再把最下面两行按列解完;两条路线最后都落在同一个2×2转圈上。5×5大约有7.76×10²⁴种可达的排列,至今还没有人确定其中最难的一种到底需要多少步。我们能找到的最新界限来自2016年,认为它在152到205步单格移动之间。

Klotski和汽车逃脱谜题需要另一套方法

逐行还原只在所有棋子大小相同时才管用。Klotski以及它所属的整个滑块谜题家族,混合了不同形状的棋子,而且根本没有哪一行要完成,因为没有一块棋子有编了号的“家”。真正重要的只有一块:你想让它逃出去的那一块。

Klotski的经典开局是一个4×5的盘子,里面有十块棋子:一个2×2的大方块在上方正中,下面横躺着一个2×1的长块,再下面是两个1×1的小方块,两侧各有两个竖着的1×2长块,最底下各有一个1×1的小方块。两个空格挨在一起,位于底部正中。目标是把2×2的大方块移到底部正中,再从框上的缺口出去。在中国,同一个谜题叫作华容道,大方块就是正在逃命的曹操。几块木头,戏份可真不少。

  1. 先规划目标棋子的路线。在动任何东西之前,一格一格地描出大方块(或要逃出去的车)通往出口的路径。
  2. 从出口往回推。看路径上的下一步:哪里必须空出来,哪块棋子挡着,这块棋子能挪到哪里。然后对挡着它的那块棋子问同样的问题。这条链条才是真正的谜题。
  3. 在Klotski里,让两个空格待在一起。竖着的1×2长块只能横着移进两个上下相叠的空格,横着的2×1块要上下移动则需要两个并排的空格,大方块则永远需要两个空格。把空格拆开,就会困住一半的棋子。
  4. 按移动的棋子数步数,而不是按格子数。在Klotski里,一块棋子滑到它能到达的任何位置都算一步,按这个算法,经典开局至少需要81步。“把这一块推到左边墙”这样的计划,比一串单格移动更容易记在脑子里。

汽车滑块谜题,也就是Rush Hour家族,又多了一条规则:每辆车都锁定在自己的车道上,所以横着停的车只能左右走。这让往回推的链条更好用了,因为每辆挡路的车最后能停的地方只有那么几个。一旦想通了这一点,接下来要练的就是减少步数,那是另一门功夫,见Rush Hour式谜题提速指南。

3x3、4x4、5x5和Klotski一览

拼图棋盘棋子空格数随机布局中有解的比例最多需要的步数方法
8数码3×38个数字方块1一半(181,440种局面)31先第一行,再左列,最后转动2×2
15数字华容道4×415个数字方块1一半(10,461,394,944,000种局面)80先第1、2行,再按列,最后转动2×2
24数码5×524个数字方块1一半(约7.76×10²⁴种局面)尚无定论(152到205)剥掉一行一列,再按4×4来解
Klotski4×5四种尺寸共10块2不是打乱类谜题;经典开局有解经典开局81步(移动一块算一步)规划大方块的路线,往回推
Sliding Puzzle(我们的)3×3、4×4或5×5数字方块或图片1每次洗牌在你看到之前都经过有解检查按尺寸记录你的最少步数和最快用时从上往下按行,再按列,最后转动2×2
Car Parking(我们的)6×6锁定在各自车道上的小汽车和厢式货车因关卡而异每一关都经过求解器检查每关的标准步数,即求解器算出的最少步数从出口往回推

让棋盘解不开的常见错误

  • 把一行的最后两个方块一个一个放。第二个总会把第一个挤出去。叠起来再转。
  • 让空格溜回已经完成的行。每去一趟都会毁掉之前的成果。如果某条路线非得这样走,就换一条路线。
  • 把最下面两行当成行来解。根本没地方暂放方块。只剩两行时,改成按列解。
  • 把最后的2×2当成三个独立的方块。它就是一次转圈。转起来,如果第一圈毫无变化,就换个方向。
  • 数错奇偶性。不要把空格算作方块;在4×4上,别忘了加上空格所在的行数。
  • 在Klotski里把两个空格拆开。较大的棋子要有两个并排的空格才能动。

在哪里在线玩滑块拼图:先玩我们的免费15数字华容道,再玩Car Parking

练上面这套方法的棋盘,就是我们自己的Sliding Puzzle,在浏览器里免费玩,无需下载,无需注册。可以选3×3、4×4或5×5,数字方块或行动主题图片都行,每次洗牌在你看到之前都会检查奇偶性,所以你永远不会碰上无解的那一半。撤销不限次数,游戏还会为每种尺寸保存你的最少步数和最快用时。它的局限:这些纪录存在你的浏览器里,清除网站数据或在无痕窗口里玩,纪录就没了。

Klotski和Rush Hour这一支,可以试试Car Parking:一个6×6的停车场,一辆被车流团团围住的金色车,每辆车都锁定在自己的车道上。一辆车换个地方停下就算一步,不管它滑了多远;240关中的每一关都显示标准步数,那是我们的求解器找到的最短解法,每关还有三次提示。它练的是从出口往回推的方法,而不是逐行还原。Getaway Garage每滑一下就让所有车辆一起动,并清除三辆一组的同色车,又是另一种谜题;如果你想听背后的故事,我们的交通堵塞谜题简史就从15数字华容道热潮讲起。

判断规则很简单。如果所有棋子大小相同,就从上往下完成每一行,剩两行时改成按列,最后转动那个小方阵。如果棋子大小不一,就挑出那块必须逃出去的棋子,从出口往回规划。第一种去4×4 Sliding Puzzle上试,第二种去Car Parking里试,两个都能在浏览器里免费玩。

常见问题

4x4滑块拼图怎么解?

先解最上面一行,再解第二行,已经完成的行绝不再动。每行的最后两个方块:把第三个方块放进角落,第四个紧挨在它正下方,把空格移到角落旁边,然后把第三个方块向左滑,第四个向上滑。最下面两行从左往右一列一列地解,用的是同一个技巧,只是横过来;最后让空格绕着剩下的2×2转,直到11、12和15归位。

滑块拼图怎么解?

从上往下逐行解,直到只剩两行,然后从左往右逐列解,最后转动剩下的2×2小方阵。每一行或每一列的最后两个方块要叠成一对一起放,而不是一个一个放。同样的方法适用于3×3、4×4和5×5的棋盘。

每个滑块拼图都有解吗?

不是。所有随机排列中,恰好有一半无解。数一数逆序对,也就是按顺序读方块时,大数排在小数前面的数对。在3×3或5×5上,逆序对个数为偶数时有解。在4×4上,再加上空格所在的行数(从上往下数,1到4);总数为偶数时有解。从已完成状态出发、靠滑动打乱的拼图,永远有解。

解滑块拼图最快的方法是什么?

对人来说,是逐行还原法加上叠对技巧:它不是最短的路线,但不需要停下来想。某个棋盘的最短解法要靠计算机搜索才能找到,这种搜索太慢,人脑根本做不来。

15数字华容道要多少步?

任何有解的15数字华容道都能在80步单格移动以内解开,而需要整整80步的局面只有17个。如果一次滑动一整排方块算一步,最多是43步。3×3的8数码从不需要超过31步单格移动。逐行还原法比最优解多走不少步,但照着做要容易得多。

什么是Klotski谜题?

Klotski是一种滑块谜题,棋盘是4×5,有四种尺寸的十块棋子和两个空格。在经典开局中,一个2×2的大方块位于上方正中,目标是把它滑到底部正中,再移出框外。经典开局至少需要81步,每块棋子滑到一个新位置算一步。

汽车滑块谜题怎么解?

从出口开始往回推。找出挡住逃生车的那辆车,想清楚它得挪到哪里,再找出挡住那个位置的车,如此类推,直到找到一辆能动的车。每辆车只能沿自己的车道移动,所以它能停的地方并不多。你可以在我们的免费网页游戏Car Parking里练习,每一关都有经过求解器检查的标准步数。

在哪里可以在线玩滑块拼图?

我们的免费Sliding Puzzle可以在任何现代浏览器里运行,无需下载,无需注册。它提供3×3、4×4(即15数字华容道)和5×5三种棋盘,可以选数字方块或图片,每次洗牌都有解,还会在那个浏览器里为每种尺寸保存你的最少步数和最快用时。

读完了,上手试试

Match Heist是写这个博客的工作室出品的3D汽车消除益智游戏,iOS和Android免费下载。

在App Store下载Match Heist在Google Play上获取Match Heist