有没有玩过这款游戏的?
- 轮流画一条线
- 围成正方形得一分,并且强制再画一条线
- 最终得分多的获胜
初中到大学我经常和同学在纸上玩(我打印好的格点),积累了不少“经验”。但是我发现,要想把这些经验写成“必胜”或是“高胜率”的算法,并不是特别简单。
但也蛮有趣的,算下来后发现,实际上我有些“经验”是错的。

那个游戏让 Deepseek 写的“机器人”,L1~L3 三个等级。但是 L3 大师 Deepseek 不知道怎么写比较好,于是我让他先不写。
我用 Codex 研究了半天“必胜法”未果,但讨论出了一个胜率较大的算法。所以让 Codex 把这套算法作为 L3 合进去。
Codex 合入后发现,L3 和 Deepseek 写的 L2 模拟对战 1000 盘,胜率只有 5%。估计是哪里有 Bug,又吭哧吭哧修去了。思考过程看到:绝对不能输给 DS 的 L2。
Dots and Boxes
dnb.closeai.moe ( 网页链接 )

算法可视化之后就能看到为什么 Codex 写的策略还不是最优解。一点点纠正说不定真能收敛出一个“先手必胜法”。

bot现在虽然理解了一部分诀窍,但预判到终盘需要20秒。或许不需要往下想那么多步棋。压力给到我自己了。

残局情况虽然没严格证明,但模拟下来基本有可用结论。
剩下就是分治中盘策略。
体感进展还是不错,基本把我玩了这几年的经验逐一转换成“规则”。
也就是说,我现在已经没把握100%赢这个 AI 了。但也十分期待算出我后手必输的结论。

昨晚睡着后想到了更优的策略。更加简洁,或许能严格证明。
昨天那套策略,在遇到长考的时候由于 minimax 探索分支复杂度不可控,有些情况下可能要想个20秒。躺床后想的思路我预计能降低到毫秒级别的判定。
Dots and Boxes 很多时候是一手定胜负,找到这样一手之后胜率直接坍缩到0%或100%。现在只需要把坍缩从中盘往前归纳即可。
思路大概是这样的,满足一定条件的中盘局面可以按“价值”划分整个棋盘。每块地都明码标价V,拥有主动权的一方可以稳定在每一块地获益 V-2 或 V-4。唯一需要考虑的是 -2 或 -4 的次数太多后反而落后的情形。
让 Codex HANDOFF 后交给 Hermes + Deepseek 继续研究!
好消息,睡觉想的策略 L4 把 Codex 写了一晚上的 L3 零封。
但其实 L3 对人类来说已经有比较大的挑战了。

不过我现在已经打不赢 L4 了。预计今晚能把 L5 做出来。
现在的 L4 能在 70 手后稳定判断终盘是谁赢,L4 内战是五五开。
但 L5 打 L4 我认为可以做到 90% 胜率。