棋种小传
它从哪里来,为什么长成今天这个样子。
设计Howard Wexler 与 Ned Strongin · 1974 年 · Milton Bradley 出版
一个玩具设计,而不是抽象棋设计
连四棋 1974 年由 Milton Bradley 以 Connect Four 之名推出,设计者是 Howard Wexler 和 Ned Strongin。它从一开始就是玩具而非棋具:立式塑料架、圆片从顶端投下、底部一拉全部落回——「重力」不只是规则,更是这件产品的物理卖点。很多抽象棋在纸上先成立再找载体,连四棋恰好相反。
重力才是这盘棋的核心机制
如果去掉重力,让棋子随便落在任意格,这款棋会立刻变得平淡无奇。真正制造深度的是「你只能选列,不能选层」:一个威胁能不能兑现,取决于它所在的那一格最终由谁填到。于是防守常常变成陷阱——你为了挡住一个够不着的威胁而落子,反手就把获胜格垫到了对手手边。
1988 年,两个人同时把它算穿了
7 列 6 行的连四棋在 1988 年被独立解出两次:James D. Allen 与 Victor Allis(正是五年后解出五子棋的那位)几乎同时得到同一结论——先手在正中间那一列开局必胜,落在相邻两列是和棋,落在最外侧两列必败。也就是说,这盘棋的胜负在第一手就已经决定了。
奇偶:解开它之后留下的技术
被解出并没有让连四棋失去价值,反而留下了一套漂亮的人类技术:把补点按层数的奇偶归类。一列被逐格填满时,双方占到的层数固定交替,所以先手的必胜点应当落在奇数层,后手落在偶数层。残局里高手做的事情就是逼对方先去填出你需要的那一层——这套奇偶理论,正是从完全解出的结果里反推回来的。
- Allis 在连四棋上使用的「知识化搜索」与他后来解五子棋的威胁空间搜索一脉相承,两项工作相隔仅五年。
- 第 1 列和第 7 列的格子能参与的连线最少,第 4 列最多——中央列的价值可以直接用「这个格子属于几条四连」数出来。
- 商业版本的正式名称 Connect Four 是注册商标,因此各类电子实现常改用 Four in a Row 之类的名字。
完整规则
先把一回合能做什么、怎样获胜弄清楚。
- 棋盘
- 7 列 × 6 行
- 先手
- 红方
- 胜负条件横、竖、两种斜向中任意一个方向上先出现四枚连续同色棋子的一方立即获胜。42 格全部填满仍无人连四,判和。
- 行棋方式每回合选一列,棋子受重力自动落到该列最低的空格。点击该列的任意一格都算选中这一列,你无法指定落在第几层。棋子落下后永久固定,不能移动或取回。
- 已经装满六枚的列不能再选,界面会直接把它标为不可用;只要还有空列就必须落子,不能停手。
- 每落一枚立即判定胜负,先连成四枚的一方直接获胜,对方不会再获得补走一手的机会。
- 一手同时形成两条以上四连也只算一次获胜;获胜的那条连线会在棋盘上整体高亮,可以直接看清赢在哪里。
- 本页默认你执红先行,也可以在设置里改成执黄后手;切换会立即开始新对局。
第一次这样下
按这个顺序思考,很快就能完成一盘。
- 第一手下正中间的第 4 列。7 列 6 行的连四棋已经被计算机完全解出:先手只有从正中央开局才必胜,落在相邻的第 3、5 列是和棋,落在最外侧的第 1、7 列必败。开局这一手就已经决定了理论结果。
- 中央列的价值来自它参与的连线数量第 4 列的每一格都能同时属于横、竖、两条斜共四个方向的连线,而边列的格子可用方向要少得多。整盘棋都应该优先争夺中间三列。
- 每次落子之前问一句这一手把哪一格垫到了对手手边?他下一手直接落在我这枚上面,能不能连成四枚?这是连四棋里最主要的失误来源——不是没看到对方的威胁,而是亲手把梯子搭给了对方。
- 威胁的关键不是已经连起来的三枚,而是那个能补成四的空格现在处于第几层、它下面填满了没有。悬在半空中的三连暂时毫无威胁,贴着当前落点的三连才是紧急情况。
- 同时造出两个不同列的必胜落点,对手一手只能挡一个,这就是必胜的双威胁。最好做的一种是横三和斜三共用同一枚棋子、补点分处两列。
- 落子之前也数一数对手他有没有正在成形的三连、这些三连的补点在哪一列第几层。防守时优先堵住那些「下一手就能落到」的补点,悬空的补点可以先放着。
实战策略
从会走升级到有计划地走。
- 把补点的层数按奇偶归类,这是连四棋最核心的技术:自底部数起第 1、3、5 层为奇数层,第 2、4、6 层为偶数层。一列被逐格填满时,双方占到的层数是固定交替的,所以红方(先手)的必胜补点应当落在奇数层,黄方(后手)的应当落在偶数层。
- 先手握住一个奇数层威胁,残局常常能逼对手先填出那一格:因为其他列被填满之后,对手总有一回合被迫落进那一列。后手则要靠偶数层威胁反制,同时避免主动去垫对方的奇数层。
- 没有必要就不要抬高关键列。每在一列多下一枚,都是把上面那一格送到对手手边;有时最好的一手是在无关的列里落子,把行棋权交回去,逼对方先动关键列。
- 两个补点在同一列且上下相邻时特别强对手挡住下面那个,你就落上面那个,等于一次双杀。这种「叠威胁」是残局里最常见的取胜形状。
- 连四棋的分支比多数棋类小得多(每回合最多七种选择),所以终局阶段完全可以沿强制着一列一列算到底,不必依赖感觉。剩下十来个空格时就该开始精确计算。
- 落后时要主动制造复杂局面把棋堆到中央,多留几条半成形的斜线,让对方每一手都要检查更多方向。领先时反过来,尽早把对方所有的三连补点都堵死,简化成纯填格。
胜负与特殊规则
容易漏掉、但会直接改变结果的细节。
- 胜负在每次落子后立即判定,先连四的一方直接获胜,不会再让对方补走一手。因此在算杀时不需要考虑「对方还有一手」。
- 42 格全部填满且没有任何四连时判和。实战里和棋并不罕见,尤其是双方都从相邻列开局的时候。
- 默认你执红先行,也可以改成执黄后手;先手和后手的正确策略完全不同(奇数层对偶数层),换边之后要连同思路一起换。
- 高难度 AI 使用迭代加深的 Alpha-Beta 搜索,并优先处理立即获胜和必须防守的着法,因此它几乎不会漏掉一步杀,也不会放过你留下的双威胁。
常见失误
新手最容易掉进去的几个坑。
- 只封住看得见的横三,漏掉需要靠下方支撑格才能成立的斜线。斜线在视觉上最不显眼,却是连四棋里最常见的取胜方向。
- 为了阻止一个还够不着的威胁而随手落子,反而把对方的获胜格垫到他手边——防守一个悬空威胁,往往比不防守更危险。
- 长期回避中央,把棋堆在边列,等发现时中央的线路已经被对方占满。第 1 列和第 7 列的格子能参与的连线最少,早期落在那里基本是浪费一手。
- 只数自己的三连,不数补点的层数。第 5 层的补点和第 2 层的补点,紧急程度完全不同。
- 看到对方连成三枚就急着堵,其实那条线的两端都已经被自己的棋子封死,白白浪费一手行棋权。
