如何战平(甚至打败)一个绝不会输的井字棋AI
由Playaby团队撰写。 网站上的每一款游戏都由我们亲自开发,撰写攻略时也会亲自把每款游戏玩一遍,所以上面的这些技巧都来自对游戏机制的实际测试——而不是泛泛而谈的建议。
井字棋这种游戏,你一学会就会觉得它已经被'解决'了,这也正是为什么输给电脑对手会让人格外不是滋味。事实上,井字棋确实已经被彻底解出:只要双方都走出完美的每一步,每一局都会以平局告终。所以,如果你在这个网站上输给了AI,好消息是它并没有靠什么隐藏诡计打败你,你只是走出了完美对手能够惩罚的失误。下面是几个让人一再犯错的常见误区,以及真正的答案。
第一步走哪里其实无所谓——不就是井字棋吗,哪个格子还能有多大区别?
实际上区别比大多数人想的要大得多。如果你先手,应该选角落或者正中间。这两个位置在数学上都比边缘格子更强,因为它们同时占据了更多条可能获胜的连线。单是正中间这一格,就同时属于四条不同的三连线(两条对角线、一行、一列),而边缘格子最多只属于两条。先走边缘格子本身不会直接输掉游戏,但会给对手留出更多可乘之机。
既然中间已经被占了,随便选哪个格子当第二步都无所谓。
并不完全对——角落几乎总是比边缘格子更强。角落是仅次于正中间的第二好选择,原因相同:每个角落都同时占据三条可能获胜的连线。如果轮到你走棋时中间已经被占了,选角落而不是边缘。仅仅养成这一个习惯,就能明显减少你在第四步、第五步就被逼入死局的次数。
这个打不败的AI肯定是用了什么隐藏诡计才赢的。
并没有——它只是从不放过任何一次'双线'(fork)机会。所谓双线,就是一步棋同时创造出两种不同的获胜方式,而这正是真正打败休闲玩家的关键。如果对手布下了双线,你只能挡住其中一条,另一条他们就直接拿下了。从第三步之后的每一步开始,落子前都先停下来想一想:对手的下一步是否可能同时打开两条获胜的连线。如果可能,你就必须要么直接挡住这个双线本身,要么自己制造一个更大的威胁,逼对手先应付你。
只要我把看到的每个威胁都挡住,我就不会输。
防守能让你不输,但光靠防守是不够的。新手往往完全采取守势:只盯着对手的两连线,见一个挡一个。这样确实能避免输棋,但也意味着你永远无法掌握主动权。真正高明的井字棋下法,是在防守的同时构建自己的威胁,这样最终布下双线陷阱的人会是你,而不是只能被动应对对手的双线。
- 第一步永远选中间或角落,绝不要走边缘格子。
- 每一步都扫描全局,留意任何能同时制造两个威胁的走法。
- 要在双线彻底成形之前就将其拆解,而不是等对手已经摆出两条活线之后。
- 面对一个谨慎的对手,守住平局就该被当作胜利,而不是失败。
一旦双方都掌握了'优先占角落、时刻警惕双线'的策略,井字棋就彻底变成一个谁也赢不了谁的游戏。事实上,这也是数学家最早用来演示博弈树分析的游戏之一:棋盘只有九个格子,合法的走法序列数量也不多,一台电脑(或者一个有耐心的人)完全可以把所有可能的结局都推演一遍,证实平局就是双方能达到的极限。这不是游戏本身的缺陷,只是一个遵循三连线规则的3x3棋盘所能承载的全部上限。
所以没错,井字棋确实是一个已被彻底解出的游戏——数学家和计算机科学家几十年前就通过穷举博弈树的方式把它算清楚了,也就是说,从每一种可能的局面出发、每一种可能的走法序列都已经被推演过,只要双方都不犯错,无论谁先手,结果永远是平局。话虽如此,你依然有可能在这个网站上赢过AI,但前提是它出现了失误,或者你玩的难度设置并非完全最优。试着多挑战它几次,留意它最狠地惩罚了你哪些走法——这通常是发现自己盲点最快的办法,因为AI从不会像朋友那样,对你的双线睁一只眼闭一只眼。
不管你最终赢了一局还是拿到一连串平局,井字棋真正考验的从来都不是能不能打败这个不可战胜的AI,而是你能不能精准地察觉到一局棋从'大概还行'滑向'其实已经输了'的那个瞬间,并在下一局开始之前改掉这个习惯。

