spdc-elm.github.io
➜~/blogs/newton-chess-rl-0
← back to blogs

牛顿棋RL 前言:我想训练出牛顿棋的第一个“AI棋圣”

「牛顿棋」

某天,我在 taptap 上无聊地看着新游的时候,发现了一个新型棋类游戏:

6222fd9d9ef91bb14b510b73c3321567.jpg

总结了一下文字版规则(又臭又长,可以直观看看后面的截图):

  1. 玩家轮流把一枚己方棋子落到任意空格,棋子落定后永久留在盘上。
  2. 八向推力:落子瞬间同时向周围相邻的格子的八个方向发出推力。
  3. 牛顿摆传递:每个方向上,与落点相邻的连续棋子链中,只有链末端的一枚被推动一格,中间的棋子保持不动(隔山打牛)。若链末端已贴住棋盘边缘,则棋子不动,不会被推出棋盘。
  4. 当棋盘最外围一圈被占满时结算,结算时统计每位玩家在外围一圈上的棋子数,按照从少到多排名,数量最少者获胜,可并列。

image.png (注:如果不横、竖、斜相邻,则不会被影响)

PixPin_2026-08-24_21-18-39.png

PixPin_2026-08-24_21-20-13.png

PixPin_2026-08-24_21-20-57.png 最后的图里,落子后比分变成 17:15,黑子外围多,所以黑输给了白。

「从双人到多人: vibe coding 复刻」

上手把玩了几局之后,我发现,这个棋的规则其实是简洁的,而且规则可以很自然迁移到多人游戏(并不一定是双人,所有的规则完全相同,只是最后记分的时候,按照最外围棋子从少到多做个排行榜)。正好将要与两个朋友出游,于是我前一晚花了半小时让 AI coding 了一个能用的单 html 版本,并且实现了多人模式。

image.png

hmmm,浓浓的 AI 味。不过,能玩就行~

「让 AI 自己学会下棋」

玩了几局之后,大家发现虽然有点心得,但好像也没有想出什么很厉害的策略。这个时候我就突发奇想,既然这是一个新的棋类,我们能不能让 AI 在人类都不怎么会玩的情况下自己学习成长,甚至“打遍天下无敌手”?

脑海中回荡着 AlphaGo,AlphaZero 曾经轰动围棋坛的画面,想到有这么多前辈经验可以借鉴,而且又有 AI 大人帮忙,我应该也可以做到吧,于是就借此机会,从几乎 0 基础开始入门棋类的强化学习了(Reinforcement Learning, RL)。

RL 这玩意是干什么的呢?针对我要做的这个牛顿棋 AI 这个具体情形,我的理解就是在一个完全确定规则、并且对弈双方信息透明的情况下,让 AI 根据终局的结算奖励(reward)作为信号,自行去尝试最大化 reward 的一种机器学习方法。自进化、可能无需大量对局数据启动,却可能达到超过人类棋力的效果——听着就让人怦然心动。

事实上,截至本文写完,我花了大概两天就在 M4Pro 芯片的 mac mini 上训练出了一个(相对于本人蹩脚的牛顿棋水平而言)还可以的小 AI,执后手能把我狠狠按在地上摩擦。而且,这个过程也让我意外地对牛顿棋规则本身有了一些洞见,比如发现它可能是为数不多的后手占优的棋类游戏(maybe?至少 AI 目前训练出来的结果是这样)。

当然,目前的 AI 仍有很多问题,比如先后手实力不均衡(先手打得很蠢),陷入进步缓慢的瓶颈期…我也认为还远远没有达到 AI “潜能”的上限。所以,我也还在继续学习下去,继续更新自己的知识(甚至,可能推翻本文的知识)。本系列的目的就是记录和分享我学习的过程,而且,是比较特别甚至激进的 “AI native” 的学习的一次实验。

不先学理论,在实践中学习,向 LLM 学习

我选择了不先读论文,没有立刻打开 B 站几十小时的 RL 课程视频(然后从入门到放弃)——直接向 LLM(gpt-5.6, ox alpha,豆包…)学习,直接以好奇心和目标作为驱动。我就是为了造出一个牛顿棋的“AI 棋圣”,顺便,尝试入门久仰大名、以数学难度等著称的 RL 领域。

这有点狂野,有点激进,但我有自己的理由,可以说这是本人理想中的学习理念的一次试验田(仅代表本人观点):

  1. (技术层面)LLM 模型预训练中充分学会了人类已有的知识,它们有当很好的老师的能力。而且,到 2026 年 8 月,有足够廉价且相对可靠的 AI 可以当做 写代码、实验等的执行者。至少在软件层面,我认为人类只需要学会“想法”,而不再需要学会“执行”——没错,脑子会了=手会了(因为 AI 可以当你的手)
  2. (个人动力层面)好奇心驱动、项目式驱动是符合人类天性的学习方式,就着这份激情去学习,可以事半功倍。
  3. (本系列文章诞生的理由)费曼学习法,能够把别人讲懂,说明你真的学会了。输出(教学)是走向有深度的学习的有效方式。

可能会有人持不同的观点,其实我有时也会怀疑其中的某些假设,以及怀疑这种学习方式是否真的切实可行。所以,姑且就让本系列当做一次实验,一次论证,让我们一起拭目以待吧~

目前的打算是,把学习的过程作为一个文章系列发表。本篇是该系列的第一篇,简单地介绍了一下最初想法的来由。后续则主要会更新学习的心路历程,尽可能从一个小白的第一视角通俗地讲解,水平不高,欢迎多多指教~