有一类游戏看起来各不相同,实际上是同一个游戏:2048、十五数码、倒水排序,以及大多数「消方块」的盘面。它们都是状态空间谜题,而底下的数学比承载它们的任何一块屏幕都更古老。
一个让讲座翻车的谜题
1879 年,纽约一位玩具商卖起一只小托盘:十五块编号滑块,一个空格。任务是把它们排成顺序。它成了真正的风潮——然后有人发现,人们买到的排布里有一半永远解不开。
证明由 William Woolsey Johnson 在 1879 年发表,推理漂亮极了。把滑块按阅读顺序读出、跳过空格,数一数有多少对次序颠倒——这就是这个排列的奇偶性。对十五数码来说,每一步合法移动都会同时改变「滑块顺序的奇偶性」和「空格所在行的奇偶性」,两个效果相互抵消。所以一局起始奇偶性与目标不一致的排布,不是难,是不可能。
1879 年卖出的那些托盘里,有一半不是难题,而是「这盘印错了」的证明。
这一点值得多想一会儿,因为它改变你解读失败的方式。有些玩家在一块无解的托盘上耗了几周,最后得出「我不擅长解谜」的结论。事实不是这样。他们只是拿到了一块坏棋盘。
2048 为什么感觉不同
2048 属于同一个家族——一个盘面、若干块、把一切朝一个方向推的移动——但它把陷阱拿掉了。没有固定的目标排布,只有合并,所以几乎任何一串合理操作都能产生进展。谜题不是「到达这个状态」,而是「管理这个空间」。
设计上的教训很精确:当目标是某种性质而不是某个位置时,滑块游戏才有意思。 性质可以从很多方向逼近;位置可能根本不可达,那样游戏就浪费了你的时间。
这也是十五数码必须有「保证可解」的原因。如果你发布的洗牌会产生死局,玩家体验到的不是一道难题,而是一个看起来像自己无能的 bug。
奇偶性不是唯一的天花板
状态空间谜题还有第二个约束,它对设计比对玩家更重要:空间的大小。
十五数码约有 10^13 个可达状态。大到足够难,小到可以搜索——所以它被最优解过,所以计算机能告诉你任意局面下的最少步数。
2048 的空间更大,而分支因子极小:四个方向,多数还等价。每回合选择少、空间大的游戏,考的是长期规划而不是计算;每回合选择多、空间小的游戏,考的是搜索。谜题的手感,来自它具备的是哪一种比例。
玩家真正学到的东西
奇偶性谜题有意思的地方在于,它教的是一种特定的思维习惯:在优化路线之前,先检查目标是否可达。
这个习惯会迁移。多数人拿到任务就开始动;而会先停一下、问「这事到底可能吗,我凭什么判断」的玩家,替自己省掉了最糟糕的那种劳动。
关于「尊重盘面」
这类游戏有一种奇特的尊严。它们不假装自己是世界。它们只是一条规则、一个空间、一个目标,发生的一切都是这三者的推论。你失败的时候,要么是盘面坏了,要么是推理坏了——而这两者都是可知的。
这比大多数游戏都更诚实。