Score
0
Best
-
一个经典策略游戏,其实暗藏着古老的取子游戏 Nim。六行里各有你和 AI 的一枚棋子:可以向对方靠近,也可以往后退,谁封上最后一个空隙,谁就困住对手。没有运气,关键只是一道漂亮的算术。
棋盘有六行,每行八格。每一行正好有两枚棋子:左边橙色的圆形棋子是你,右边蓝色的菱形是 AI。每行末尾的数字是这一行的空隙,也就是两枚棋子之间有几个空格。总是你先走。
轮到你时,任选一行,把这一行里你的棋子移动任意格:可以向前靠近 AI 的棋子,也可以向后退往左边的墙。不能跳过 AI 的棋子、不能停在它上面、也不能走出棋盘,而且必须真的移动。移动时,按住你想让棋子去的那一格,那里会出现虚线预览。沿着这一行滑动手指可以调整位置,松开手指就移动。在棋盘外松开则取消。AI 棋子另一侧的格子你永远到不了,所以显示为暗色。
接着 AI 用同样的方式移动它的一枚棋子。它永远只朝你的方向前进;它刚离开的格子带条纹,刚移动的棋子带白色边框。
两枚棋子贴在一起、空隙为 0 的行就是封闭的行。六行全部封闭时,轮到谁走谁就输。在完整的游戏里,这一方其实还能往后退,但每退一步对手都能原样跟上,直到把它逼到墙边,所以胜负在这一刻已经确定。简单说:在你的回合封上最后一个开着的空隙,你就赢了。
赢了 AI,下一局会带着增长的连胜开始,分数就是连胜数。每赢一局,AI 也会更谨慎——你的连胜越长,它的松懈招就越少。输一次连胜就结束,可以在结果卡片上把它存进名人堂。
先别管棋子,只看空隙数字:它们就是 Nim 的几堆石子,而 Nim 是最古老的、已被完全解开的策略游戏。向前走等于把某个空隙减少任意数量,和从一堆里取走石子一模一样。向后退会让空隙变大,但这对退的一方从来没有好处,因为对手可以前进同样的距离把它抵消。所以整个游戏就是以六个空隙为石堆的 Nim。
Nim 在 1901 年被 Charles Bouton 完全解开。把每个空隙写成二进制——这里没有空隙超过 6,所以只用 1、2、4 三位就够——再逐位数一数 1 的个数:1 的个数为奇数的位叫"奇数位"。如果每一位都是偶数(Nim 和为 0),轮到走的一方面对完美对手必输;只要有奇数位,就存在一步能让所有位重新变成偶数,这一步就是赢的走法。例如空隙 3、5、6 写成 011、101、110,每一位都正好有两个 1,所以在那里必须走的一方会输。
每一盘新棋都从 Nim 和为 0 开始,所以作为先手,你是从输的局面出发的;按 Nim 和完美下棋的 AI 只有在走出松懈招时才会输。你的任务就是抓住那一刻。AI 每走一步,就重新算一遍各位;如果有奇数位,就找出在最高奇数位上有 1 的那个空隙,把它缩小到所有位重新变成偶数为止。如果已经全是偶数,就在一个大空隙里只前进一小步,给 AI 留下最多犯错的机会——千万别后退,那只会给它更多空间。
诺斯科特游戏是组合博弈经典著作《Winning Ways for Your Mathematical Plays》(1982)里介绍的"伪装的 Nim"之一。后退的走法看起来像是多出来的选择,实际上什么都改变不了,伪装就是这样成立的。一旦看穿,棋盘就变成了六个小数字,每回合剩下的问题只有一个:削哪一个,削多少。