井字棋
三乘三棋盘上人机对弈,先连成三子者获胜。
常见问题
井字棋怎么玩?
三档难度有什么不同?
先手可以切换吗?
胜平负和最高连胜怎么记录?
使用步骤
- 选择难度与先手
在顶部选择简单、普通或完美三档难度,再决定你先手还是 AI 先手。切换其中任意一项,都会立即开始新的一局。
- 点击格子落子
先手方执 X,后手方执 O。点空格落子,AI 会在短暂思考后应手,思考期间连续点击不会重复落子。
- 先连成三子即胜
横、竖、两条斜线任意一条连成三子即获胜,九格下满且无人连成三子则为平局。
- 换键盘下一盘
方向键移动光标,回车在光标处落子,也可以直接按 1 到 9 对应九宫格的位置,N 键随时开新局。
- 查看战绩与连胜
HUD 记录胜、平、负的场次与当前连胜,最高连胜保存在浏览器本地,刷新页面也不会丢失。
工具详细介绍
井字棋是最容易上手的两人棋类游戏,棋盘只有九格,规则一句话就能讲完。它的变化却比看上去多:先手第一子落在哪里,会决定后面几条线的走向,后手则要在封堵与反击之间做选择。很多人小时候在作业本背面画过它,长大以后才知道它是一道严谨的数学题,双方都走最优时结果是平局,而不是先手必胜。九格之间藏着完整的博弈论常识,也藏着先手与后手的全部较量。
本站版本把对局放在浏览器里完成,三档 AI 分别对应随机落子、多数走最优与完全搜索。完美档用 minimax 遍历整棵博弈树,落子前把所有可能的走法算一遍,所以它不会漏掉你的成三威胁,也不会放过自己的取胜机会。难度与先手可以随时切换,HUD 分别记录胜、平、负与连胜。所有判断都在本地完成,页面不会上传你的对局数据,也不需要额外的网络请求。
原理与背景
井字棋的状态空间小到可以穷举,合法局面不到六千种,整棵博弈树在几十年前就被算清楚了。结论是双方都走最优时必定平局:先手没有必胜手段,后手也无法反杀。这解释了为什么两个认真下棋的人总是和棋。想分出胜负,只能等对手先犯错,或者自己先看漏一步。对新手来说这个结论有些反直觉,亲手验证几盘就会相信。
minimax 的思路是把每个空格的后果都推演到底:轮到自己时挑分值最高的走法,轮到对手时假设他会挑分值最低的走法。取胜越早分越高,落败越晚扣得越少,于是抢先与拖延都自然出现在搜索里。实现时还要先看自己能否立刻成三,再看对手有没有成三的点并优先封堵。最后一步落在哪里,搜索给出的答案通常就是标准答案。
典型使用场景
- 等电梯的三十秒
一盘井字棋通常只要十几秒,点开就能下完一局。它不用下载,也不占太多注意力,适合在通勤、排队或者等电梯的空档里换换脑子。输赢都很轻,关掉页面也没有任何负担。
- 陪孩子理解规则
三乘三的格子对孩子足够直观,轮流落子、先手后手、连成一线这些概念都能在一盘里讲明白。简单档随机落子,孩子很容易赢,等他想挑战了再切到普通或完美档,难度梯度刚好。
- 看懂搜索算法
如果你在学算法,井字棋是 minimax 最合适的练手题目,状态少,结果肉眼就能验证。把难度切到完美档,看它每次都封堵你的成三点,再对照源码里的递归过程,比读伪代码更好懂。
使用技巧
- 先手第一子占中心或占角,留出更多可以连线的方向。
- 对手有两个子连成一线时,先封堵,再考虑自己的进攻。
- 想练手就切到完美档,把它的每一步当作标准答案复盘。
注意事项
- 只盯自己的连子
闷头摆自己的两个子,等对手的成三威胁成型才反应,往往已经晚了。每落一子前先扫一遍对手的棋子,看他有没有两个子连成一线,封堵的优先级通常高于自己铺路。
- 看漏双威胁
对手一手同时做出两条成三线时,你只能堵一条,另一条就决定胜负。提前一步占住那个能连接两条线的格子,比事后到处救火更有效,位置的价值高于子力。
- 随手落在边格
边格只参与两条线,中心格参与四条,角格参与三条。先手第一子落在边格,等于把先手优势让掉一半。落子前先数一数这个格子通向几条线,再决定要不要下。