点格棋 · 攻略

点格棋策略:链、送格与收官怎么算(2026)

slug: dots-and-boxes-beginner-tips · Last verified 2026-11-08

亲自试试 — 立即玩 点格棋

浏览器免费直玩,无需下载或注册。

玩 点格棋

更新:2026 年 11 月 · 在 Playnesta 的点格棋上实测(Playnesta 原创 MIT;4×4/5×5/6×6 三种棋盘,简单/中等/困难三档) · 79 项无头 harness · 策略探针重放 1,200 局中等对中等,并构造两个小残局验证送格算术 · 线上 js/engine.js 与 js/main.js 和这里测的文件逐字节一致
方法:本文每个数字都来自已上线的 build,而不是设计稿。规则引擎是 js/engine.js(Playnesta 原创,MIT),页面外壳是 js/main.js;本场重跑了 79 项无头 harness,另用策略探针在每种棋盘上重放 400 局中等对中等,并构造两个小残局核对送格算术。线上两个文件的 sha256 与本地逐字节一致(engine.js 47162313…、main.js a7de46be…)。游戏页讲操作和规则;这篇是策略层:当每条线看起来都安全时该选哪条、一个三边格到底值多少、以及为什么残局在棋盘看起来还空的时候就已经定了。点格棋是 Édouard Lucas 于 1889 年以 La Pipopipette 之名发表的公共领域纸笔游戏;名字是通用描述,不是本站的商标。

1. 棋盘是一份边数预算:40、60 或 84 手

在同一个棋盘上,一局棋的手数正好等于棋盘的边数。每一手只画一条还没画过的边,别的什么都不做,所以不管双方怎么下,棋盘都按固定速度填满。

棋盘 格数 边数 总手数 能平局吗?
4×4 16 40 40 能——16 是偶数
5×5 25 60 60 不能——25 是奇数
6×6 36 84 84 能——36 是偶数

两条规则让这些手数产生不同后果。补上方格第四条边就会占下这一格,而占格保留回合;没占到格的一手则把回合交给对方。两个相邻方格都只剩三条边、并且共用同一条缺边时,一条线可以同时占下两格。整局游戏就是这些:40、60 或 84 次「只画一条边」的决定,其中一些保留回合,一些交出回合。

默认棋盘是 5×5、中等。上方按钮切换尺寸和对手;URL 可以钉住它们,例如 ?size=6&level=hard&seed=7。棋盘是正方形,格距 100 px,放在带留白的正方形舞台里;换尺寸时页面会重建整张 SVG。

2. 送格的真实代价:一格、两格,还是一条链

一个已经画好三条边、还没有主人的方格是一个礼物:谁补上第四条边,谁就占下它并保留回合。真正重要的不是这一格,而是那个额外回合。如果这个回合又补上了下一格,礼物就不会只送一格。

两个相邻的三边格可以共用同一条缺边。在这种局面下,一条线会同时占下两格。策略探针在 4×4 棋盘上构造了正好这个形状:0 号和 1 号方格都只有三条边,共用中间那条缺掉的竖边。画下这一条线,引擎返回 boxes: [0, 1]、extra: true,比分从 0–0 一下跳到 2–0。

在普通的中等对中等对局里,这不是罕见的奇观。探针统计了所有「一条线占两格」的落子:

棋盘 每局两条线占两格的次数(400 局) 总计
4×4 0.32 129
5×5 0.51 202
6×6 0.80 320

所以策略层第一条规则很简单:除非所有合法落子都会造成三边格,否则不要主动造出三边格。三边格不是一条中性的线,而是一张签了名的支票。两个共用一条边的三边格,就是一张签名相同的两格支票。

3. 链:开最短的那条,不是最近的那条

链是一组方格,一旦被打开,就能在一个回合里被连续拿走。占格保留回合,所以一条长度为 L 的链,就是 L 格归那个开始吃的人。探针在一段构造出来的 4×4 横排上验证了算术:三格链用三次占格吃掉,单个三边格用一次吃掉。开一条长 3 的链和开一条长 1 的链,代价差是 2 格,不是 1 格。

所以「开离我最近的链」是错的本能。当棋盘上一个自由格都没有时,你被迫下一手「安静棋」,它会造出一个三边格;你唯一能选的是造哪一个。开那条送格最少的链,哪怕它在棋盘另一头。

开链的实测代价比大多数人想的大。探针把开链定义为:在一个自由格都没有的时候,下一手不占格的棋,并且这手棋之后至少出现一个自由格;然后统计对手在不得不开下一条链之前,一共吃掉了多少格。

棋盘 每局开链次数 每次开链平均送掉的格数
4×4 3.9 4.1
5×5 5.2 4.8
6×6 6.8 5.3

这些平均值来自中等对中等的对局,所以描述的是这个 build 的对手,而不是完美博弈。但它们足以说明问题:所谓「送一格」,通常是一串四到五格的开始。谁先被迫开第一条链,往往就在这个决定上输掉整局。

线上对手只部分看见这件事。中等用一手深度的 giftCost 给每一手安静棋打分:它数这手棋会造出几个三边格,再给每个「已经挨着另一个自由格」的新三边格加一分。它看不见一条两格深的走廊会在第一次吃子之后变成链。困难会对每条候选线把剩下的棋盘走完,所以对长链的估值更准。两档都不走双交叉(故意留两格,让对手被迫去开下一条链),所以你打开的链通常会被吃到尾。

4. 为什么「先补外圈再补角」是错觉

初学者常有一个计划:先把外圈和角的线画掉,「留着」中间,最后再开始收格。棋盘不会配合。每一手正好增加一条边,而游戏只有在所有边都画完时才结束。总共就是 40、60 或 84 手;你没法把一条边留到以后,也没法靠先画角来改变总数。

真正会变的是占格手和不占格手的比例。占格手保留回合,所以一串连续占格可以在回合易手之前拿走好几格。探针在 400 局中等对中等里测到的不占格比例是:

棋盘 平均不占格手数 占总手数
4×4 40 手里的 24.32 60.8%
5×5 60 手里的 35.51 59.2%
6×6 84 手里的 48.80 58.1%

大约每五手里有三手会把回合交出去。所以这局棋是一个节奏问题:谁被迫先下那手造出自由格的安静棋,以及这次开链会送掉多少格。外圈和角不是资源;落子顺序才是。

5. 平局、奇偶和最后一格:16、25、36 各自决定了什么

格数决定平局是否可能。平局要求双方最后一样多,所以总格数必须是偶数。4×4 有 16 格,6×6 有 36 格,两者都可能打平;5×5 有 25 格,所以一定有人赢。

探针每种棋盘 400 局中等对中等的读数说明平局不是理论上的:

棋盘 先手赢 电脑赢 平局
4×4 193(48.3%) 137(34.3%) 70(17.5%)
5×5 164(41.0%) 236(59.0%) 0
6×6 201(50.3%) 179(44.8%) 20(5.0%)

最后一格不是固定归先手的。在同一批 400 局里,先手拿到最后一格的次数是:4×4 301 次、5×5 136 次、6×6 242 次。5×5 的读数是最有用的更正:这个棋盘不能平局,但最后一格可以归任何一方。不要按「最后一格一定属于先手」来计划;引擎里没有这条规则,实测里也没有。

奇偶确实决定一件事:5×5 上不可能出现平局比分。只剩一格时,最后一格被占之前的比分要么是 12–12,要么相差偶数;最后一格被占之后,最终比分仍然不等。任何合法落子序列都无法把 25 格分成两个相等的总数。

6. 三档电脑,直接读线上代码

三档不是三套不同规则,而是在同一批合法落子上用三种不同的搜索预算。

档位 一个回合里做什么 已知上限
简单 有可占的格时,75% 会去占;否则 60% 随机选一手不占格的安静棋;再否则随机选合法落子。 它可能放着一格不拿。
中等 吃掉所有自由格。没有可占格时,选一手深度 giftCost 最小的棋;同分随机。 只看见一手棋会造出的三边格,加上紧挨着的自由邻居。
困难 最多抽 26 条合法候选线,用中等策略把双方剩下的棋盘走完,保留终局分差最好的一条。 仍然是一手深度的抽样+推演,不是已解表,而且从不走双交叉。

实战里有两个细节重要。第一,中等一定会吃掉自由格。你留下一个三边格,它就会占;而占格保留回合,所以它会一直占到没有自由格为止。第二,困难的候选样本上限是 26。6×6 满盘有 84 条合法边,所以开局第一手是从样本里选的,不是从 84 条里全选。种子固定的是样本和同分选择,不是让搜索变穷举。这个上限有一个可测的后果:当棋盘很宽、又存在自由格时,抽样可能根本没抽到那条能占格的线。每种棋盘构造 40 个至少有一个自由格的中盘局面,困难档分别有 14 次(4×4)、26 次(5×5)、32 次(6×6)没有去占那个自由格。占自由格严格优于不占——你得分并保留回合——所以这是抽样推演的误差,不是可以照抄的策略。

提示按钮用困难策略,但用的是 Math.random,不是带种子的随机数。所以固定种子的一局里,电脑的回应可复现,提示却不可复现。提示只标出一条线,计入本局提示次数,从不替你画线,也不改比分。

7. 每一手都能跑的检查清单

玩好这个 build 不需要计时器,也不需要求解器。每一手按同样六步检查:

  1. 吃掉所有自由格。 比分是格数,不是姿势。一个格有三条边,就补上第四条并保留回合。
  2. 数清还剩什么。 连续吃子结束后,数剩下的格和它们组成的链。棋盘小到可以数清;16、25、36 都不是大数。
  3. 没有自由格时,开最短的链。 不是最近的,也不是「看起来安全」的。数清楚它会送掉几格。
  4. 避免造出三边格,尤其是共用一条边的两个三边格。 一个三边格是礼物;两个相邻且共用缺边的三边格,是一条线送两格。
  5. 看比分,不要看形状。 棋盘再漂亮,格数少就是输。唯一重要的数字是差值。
  6. 提示只用在「选哪条链」的时刻。 棋盘安静、你要决定开哪条链时最有用;更早用提示,只是把同一次提示花在你自己已经看得见的落子上。

一个算例能把算术变具体。假设 4×4 上比分 6–6,还剩四格,分成一条长 1 的链和一条长 3 的链。如果你先开长 1 的,电脑吃掉 1 格(6–7),然后它必须去开长 3 的;你吃掉 3 格,9–7 赢。如果你先开长 3 的,电脑吃掉 3 格(6–9),然后去开长 1 的;你吃掉 1 格,7–9 输。同样四格、同样棋盘,结果相反——唯一区别是你先开了哪条链。

8. 提示、重开和本地记录

页面的控件刻意做得很小。提示会按困难策略标出一条线,并给本局提示计数加一;它不画线、不改比分,在电脑思考时或棋局结束后也不能用。重开会用同样的尺寸和档位重新开始;没有悔棋,所以点错就是一手真实落子。规则按钮打开规则说明,声音按钮开关合成音效。

记录只存在本地。每个棋盘尺寸和档位下的胜、负、平分别保存在这个浏览器的 pn.dotsAndBoxes.v1 里,连同声音设置。不上传任何东西,也没有账号。换浏览器、开隐私窗口或清除站点数据,都会从零开始。URL 里的 size、level、seed 固定棋盘、对手和电脑的同分选择;seed 不固定提示。

手机上页面能放进 348×261 的舞台而无需滚动:每个控件至少 22 px 高,棋盘保持正方形。894×670 的桌面舞台上,棋盘至少 560 px 见方。按住拖动会预览手指下的线,松手时的那条线才会被画上。

9. 这篇指南不声称什么

这是一篇针对某个线上 build 的策略指南,不是证明。它不发布 6×6 的必胜策略、不发布已解表,也不声称困难档完美。困难对手是用中等策略做 26 条候选推演,它会被打败,而且它不走双交叉。中等对手按设计就是贪心的,你留下的每个自由格它都会拿走。上面的数字描述的是这些策略,不是最优玩家。

本文也不做人群声明。这里没有「平均水平玩家」的百分位,因为页面没有测量过玩家。页面唯一能诚实做的比较,是你在同样尺寸和档位下的自己的记录。

FAQ

点格棋的最佳策略是什么?

先吃掉所有自由格,再数剩下的链,开最短的那条。最常输棋的两个习惯是:留下一个三边格,以及在有短链时先开长链。在这个 build 里,困难对手会惩罚这两种做法;中等对手会吃掉所有自由格,但在必须送格时只看一手。

点格棋怎么赢?

棋盘填满时格数更多就赢。残局由「谁被迫先开第一条链」和「这条链送掉几格」决定。在探针的中等对中等对局里,一次开链平均送掉 4.1 格(4×4)、4.8 格(5×5)、5.3 格(6×6),所以第一次被迫送格通常就是决定性的。5×5 一定有人赢;4×4 和 6×6 可以平局。

点格棋里的「链」是什么?

链是一组方格,一旦被打开,就能在一个回合里被连续拿走。占下一格会保留回合,所以长度为 L 的链,对开始吃的人来说就是 L 格。因此长 3 的链比长 1 的链多花 2 格。这个 build 的中等对手只看链的第一手;困难会先把剩下的棋盘走完再选。

点格棋可以平局吗?

4×4 和 6×6 可以,因为 16 和 36 是偶数。5×5 不可以,因为 25 是奇数。400 局中等对中等里,平局率是 4×4 17.5%、5×5 0%、6×6 5.0%。平局是真实结果,不是 bug;结果卡会显示,本地记录也会单独计数。

点格棋里的电脑会作弊吗?

不会。电脑看到的是和你一样的棋盘,也只能从同一批合法落子里选。简单档是带占格偏好的随机;中等档是只看一手送格成本的贪心;困难档最多抽 26 条候选,再用中等策略推演。困难更强,但不是全知:它不走双交叉,样本也有上限。

提示按钮到底做什么?

提示会让困难策略给出一手,并标出那条线。它会计入本局提示次数,但不画线、不改比分、也不结束你的回合。它只在你的回合、电脑不在思考、棋局还没结束时可用。因为它用 Math.random,带 ?seed= 的 URL 能固定电脑回应,但固定不了提示。

6×6 点格棋有必胜策略吗?

这篇页面不发布必胜策略,也不依赖已解表。这里的建议是实测出来的启发式:数链、开最短的、避免造三边格和共用边的三边格对。困难对手是 26 条候选的推演,不是最优博弈的证明,所以会数残局的人仍然能赢它。

为什么电脑会把整条链都吃掉?

因为占格保留回合。一条链被打开后,每次吃子都还是同一个人走,所以中等档会一直吃自由格,直到一个不剩。困难档通常也这样,但它的 26 条候选样本在宽棋盘上可能漏掉一条能占格的线;这是策略的误差,不是规则。想打断连续吃子的人会用双交叉,而三档都不走它。

为什么页面说 5×5 不能平局?

因为棋盘有 25 格,而最后每一格都只属于一个玩家。奇数总数没法分成两个相等的整数。最后一格仍可能归任何一方;不能平局说的是总数,不是谁先走。

更多游戏

Playnesta 上更多免费游戏——选下一局吧。