两款合并游戏,一个问题:它们中有哪一款能被完美无瑕地玩下去吗?答案要穿过棋盘的一角、一个永远不会现身的对手,以及一个高达十七个指数的数字。
本文以英文撰写和编辑。此中文版本由机器翻译生成;凡涉及准确性之处,以英文原文为准。 阅读英文原文 →
单个方块最高能爬到多高?在十六个格子上,答案是一段简短而优雅的计数。把棋盘排成一道递减的阶梯:65536、32768、16384,一路向下直到一个孤零零的 2。每个方块都恰好比相邻方块低一个 2 的幂次,于是 21 到 216 这十六个不同的幂次正好填满棋盘,而 65536 = 216 就坐在顶端:每个格子一个指数。这就是在游戏只给你 2 的情况下的上限。但 2048 每十次会生成一次 4,而一个时机恰当的 4 就能偷偷塞进第十七个指数,把真正的最大值抬到 131072 = 217——把相当于十七个方块的幂次挤进了十六个方格。4 还没有人类搭出过它;只有少数几个 AI 曾擦边触及。
为什么这类棋盘会奖励把最大的方块塞进角落?位于中间的方块可以被朝四个方向推动,于是它总是被迫与想要结合的方块分开。角落里的方块贴着两面墙;朝它已经紧贴的墙推动无法让它移动,只要你避免朝远离这两面墙的方向推,它就能稳坐不动,而其他一切都围绕它整理起来。把其余方块串成一条单调的“蛇”——最大的在角落,按降序来回折返——一次滑动就能引发一连串合并。1 这是主导人类休闲玩法的启发式规则,而当你让 AI 自行调校权重时,它们重新发现的也几乎正是这一条。
带有随机生成的合并游戏没有对手,只有天气。“破解”它意味着在平均意义上战胜骰子,而不是战胜一个头脑。
现在把棋盘倾斜进三维空间。3927 是 2048 的立方体表亲:一个由 27 个格子组成的 3×3×3 晶格,六个推动方向而非四个,方块三个一组合成——3 变 9,9 变 27,27 变 81——2048 是二进制,这里则是三进制。5 角落堆叠法能在多出的维度中存活吗?立方体有八个角,角格现在贴着三个面而不是两个——它应该更加稳固,同时被三面墙钉住;不过六个方向也让棋盘有更多办法把你搭好的结构抖散。那条“蛇”变成了一条贯穿全部三层的折叠路径。就我所能查到的,还没有人弄清楚这个类比是否真的成立——这是推理,而非测量。
那么上限呢?“每格一个指数”的规则会给出 327 ≈ 7.6 万亿,作为一个宽松的上界。但这个类比破绽很大。2048 多出的那个指数来自一个幸运的 4;3927 只会生成最小的方块,一个光秃秃的 3,所以没有任何额外奖励。更糟的是,三方块合并需要三个方块排成一条线,而 3×3×3 立方体上的每一行、每一列、每一根立柱都恰好只有三个格子长,所以每一次合并都会耗掉一整条线。这个约束比平面游戏中的任何限制都要严苛得多,几乎可以肯定会把真正的最大值拖到远低于 327 的地方。这个真实数字究竟是多少,我没有在任何地方找到计算结果。(以上为明确标注的推理;上述机制则依据游戏设计文档核实。)
正是这个微妙之处,让“完美玩法”变得难以捉摸。带有随机生成的合并游戏是一种单人随机博弈——一场与骰子对弈的单人游戏,而不是一场决斗。没有什么东西会挑选最坏的生成位置来毁掉你;只有漠不关心的随机数生成器。因此,最优玩法的正确概念是期望最大化:在生成位置的概率分布上最大化期望结果。它绝对不是极小化极大(minimax)——极小化极大预设了一个对手;如果你真的让一个对手来放置每个方块(“邪恶 2048”),这款游戏就会变成一种更残酷的东西,你可能被逼到必输。由于骰子原则上可以发出任何序列,一个能保证达到某个方块的策略可能根本不存在。所以,对于“是否存在完美策略?”这个问题,诚实的回答是:对于随机博弈,我们最多只能定义一个平均意义上最优的策略;而精确计算它,对 2048 来说仍力所不及,6 对 3927 来说则完全是未知领域。