井字棋

三乘三棋盘上人机对弈,先连成三子者获胜。

难度
先手
胜0
平0
负0
连胜0
最高连胜0

点击格子落子:先手方执 X,后手方执 O。横、竖、斜任意方向先连成三子即胜,九格下满则为平局。键盘用方向键移动光标、回车落子,也可以直接按 1 到 9 落子。切换难度或先手会立即开始新的一局。

常见问题

井字棋怎么玩?
你和 AI 轮流在 3×3 格子里落子,先手方执 X,后手方执 O。横、竖、斜任意方向先连成三子即获胜,九格下满且无人连成三子则为平局。
三档难度有什么不同?
简单档完全随机落子,适合熟悉规则。普通档多数时候走最优,偶尔随机一步。完美档用 minimax 全局搜索,理论上不会输,最好的结果只能和棋。
先手可以切换吗?
可以,点「你先手」或「AI 先手」即可切换,切换后会立即开始新的一局。AI 先手时它执 X 先落子,你执 O。
胜平负和最高连胜怎么记录?
每局结束后自动累加胜、平、负的场次,连胜只在获胜时增加,落败或和棋清零。最高连胜保存在浏览器本地,刷新页面后依然保留。

使用步骤

  1. 选择难度与先手

    在顶部选择简单、普通或完美三档难度,再决定你先手还是 AI 先手。切换其中任意一项,都会立即开始新的一局。

  2. 点击格子落子

    先手方执 X,后手方执 O。点空格落子,AI 会在短暂思考后应手,思考期间连续点击不会重复落子。

  3. 先连成三子即胜

    横、竖、两条斜线任意一条连成三子即获胜,九格下满且无人连成三子则为平局。

  4. 换键盘下一盘

    方向键移动光标,回车在光标处落子,也可以直接按 1 到 9 对应九宫格的位置,N 键随时开新局。

  5. 查看战绩与连胜

    HUD 记录胜、平、负的场次与当前连胜,最高连胜保存在浏览器本地,刷新页面也不会丢失。

工具详细介绍

井字棋是最容易上手的两人棋类游戏,棋盘只有九格,规则一句话就能讲完。它的变化却比看上去多:先手第一子落在哪里,会决定后面几条线的走向,后手则要在封堵与反击之间做选择。很多人小时候在作业本背面画过它,长大以后才知道它是一道严谨的数学题,双方都走最优时结果是平局,而不是先手必胜。九格之间藏着完整的博弈论常识,也藏着先手与后手的全部较量。

本站版本把对局放在浏览器里完成,三档 AI 分别对应随机落子、多数走最优与完全搜索。完美档用 minimax 遍历整棵博弈树,落子前把所有可能的走法算一遍,所以它不会漏掉你的成三威胁,也不会放过自己的取胜机会。难度与先手可以随时切换,HUD 分别记录胜、平、负与连胜。所有判断都在本地完成,页面不会上传你的对局数据,也不需要额外的网络请求。

原理与背景

井字棋的状态空间小到可以穷举,合法局面不到六千种,整棵博弈树在几十年前就被算清楚了。结论是双方都走最优时必定平局:先手没有必胜手段,后手也无法反杀。这解释了为什么两个认真下棋的人总是和棋。想分出胜负,只能等对手先犯错,或者自己先看漏一步。对新手来说这个结论有些反直觉,亲手验证几盘就会相信。

minimax 的思路是把每个空格的后果都推演到底:轮到自己时挑分值最高的走法,轮到对手时假设他会挑分值最低的走法。取胜越早分越高,落败越晚扣得越少,于是抢先与拖延都自然出现在搜索里。实现时还要先看自己能否立刻成三,再看对手有没有成三的点并优先封堵。最后一步落在哪里,搜索给出的答案通常就是标准答案。

典型使用场景

  1. 等电梯的三十秒

    一盘井字棋通常只要十几秒,点开就能下完一局。它不用下载,也不占太多注意力,适合在通勤、排队或者等电梯的空档里换换脑子。输赢都很轻,关掉页面也没有任何负担。

  2. 陪孩子理解规则

    三乘三的格子对孩子足够直观,轮流落子、先手后手、连成一线这些概念都能在一盘里讲明白。简单档随机落子,孩子很容易赢,等他想挑战了再切到普通或完美档,难度梯度刚好。

  3. 看懂搜索算法

    如果你在学算法,井字棋是 minimax 最合适的练手题目,状态少,结果肉眼就能验证。把难度切到完美档,看它每次都封堵你的成三点,再对照源码里的递归过程,比读伪代码更好懂。

使用技巧

  • 先手第一子占中心或占角,留出更多可以连线的方向。
  • 对手有两个子连成一线时,先封堵,再考虑自己的进攻。
  • 想练手就切到完美档,把它的每一步当作标准答案复盘。

注意事项

  • 只盯自己的连子

    闷头摆自己的两个子,等对手的成三威胁成型才反应,往往已经晚了。每落一子前先扫一遍对手的棋子,看他有没有两个子连成一线,封堵的优先级通常高于自己铺路。

  • 看漏双威胁

    对手一手同时做出两条成三线时,你只能堵一条,另一条就决定胜负。提前一步占住那个能连接两条线的格子,比事后到处救火更有效,位置的价值高于子力。

  • 随手落在边格

    边格只参与两条线,中心格参与四条,角格参与三条。先手第一子落在边格,等于把先手优势让掉一半。落子前先数一数这个格子通向几条线,再决定要不要下。

相关工具