图 116跟着学馆
国际象棋:逐步学会走法
双方各走四步后,就有 84,998,978,956 种可能棋局。
这台设备无法显示 3D 模型。下面的讲解步骤可以直接阅读文字。
1 / 24 自动重现 1858 年的棋局1858 年,保罗·墨菲在巴黎歌剧院包厢里,与不伦瑞克公爵和伊苏阿尔伯爵下了这局棋。观看它在第 17 回合以将杀结束。
拖动可旋转,滚轮或双指缩放。
歌剧尚未结束,棋局已经落幕
1858 年,美国棋手保罗·墨菲坐在巴黎歌剧院的包厢里,背对舞台。棋盘另一边是不伦瑞克的卡尔公爵和伊苏阿尔伯爵,两人共同商议,联手执一方。那年陪同墨菲旅行的弗雷德里克·埃奇写道,公爵连歌剧包厢里也放着棋盘,整场演出都在下棋。这局棋只下了 17 回合。墨菲先弃马,再弃车,接着弃后,最后走了一步车,让黑王无处可逃。
本页开头会自动重现这局棋。棋子落到木棋盘上,镜头从房间里移近,33 步棋(白方 17 步,黑方 16 步)不到十秒就走完。接下来的内容把棋局拆解为其中用到的规则。你可以拖动每一种棋子,观察它能到达的格子亮起;试试王车易位、吃过路兵和升变这三种特殊着法;观看四种基本将杀方法;还可以跟着一套开局走法,学习何塞·劳尔·卡帕布兰卡和爱德华·拉斯克约一个世纪前写下的五条经验原则。
随后,本页转向人们常问的数字问题。国际象棋究竟有多少种不同棋局?浏览器会自行计算前四步的数量,并将结果与已发表的数值及克劳德·香农 1950 年的估计比较。一匹马走遍全部 64 格,八个后同处一盘却互不攻击,而米粒从一格到下一格不断翻倍,直到某一格的米堆高过桌边的人形模型。
这里采用的规则依据 2023 年 1 月 1 日生效的 FIDE《国际象棋规则》。FIDE 即国际棋联,1924 年在巴黎成立,目前总部位于洛桑。括号内的条款编号,例如(FIDE 3.8.2),指向规则中说明相同内容的段落。
棋盘与初始摆法
国际象棋棋盘由 8 行 8 列、共 64 个深浅相间的格子组成。无论实际颜色如何,规则都把浅色格称为「白格」,深色格称为「黑格」(FIDE 2.1)。人们摆棋盘时最容易弄错的第一件事是方向。棋盘放在双方之间时,每位棋手右手近处的角格都必须是浅色。在本页的摆棋步骤中,这一格 h1 用蓝框标出。
每方有 16 枚棋子:一个王、一个后、两个车、两个象、两个马和八个兵。白方的大子从第一横线开始,兵在第二横线;黑方的大子在第八横线,兵在第七横线。车放在两个角上,旁边是马,再旁边是象。后放在与自己同色的格子上,所以白后从 d1(白格)开始,黑后从 d8(黑格)开始,王在其旁边的 e1 和 e8。只要后各居本色格、h1 是白格,棋盘就摆对了。
白方先走,随后双方轮流各走一步,不能跳过自己的回合。
直线、横线与格子的名称
八列称为直线,从白方左手边起以 a 至 h 标记。八行称为横线,从白方一侧起编号 1 至 8(FIDE 2.4)。每个格子都由所属直线和横线命名:a1 是白方左侧角格,h8 是其对角的角格,e4 则是王前兵前进两格后、位于白王前方的格子。
着法采用规则附录 C 规定的代数记谱法。除兵外,每种棋子都用一个大写字母表示:K 表示王、Q 表示后、R 表示车、B 表示象、N 表示马。一步棋写成字母加上目的格,因此 Nf3 的意思是「马走到 f3」。兵的走法只写格子,例如 e4。吃子时加 x(Bxf3,兵则如 exd5),将军加加号,将杀加井号(Rd8#)。王翼易位写作 O-O,后翼易位写作 O-O-O。如果两个同类棋子都能到同一个格子,就补上出发格的直线或横线,如 Rad1。你可以在展台用这种记谱法输入着法:点击棋盘,输入 e4,然后按 Enter。
各种棋子的走法
展台的课程把一种棋子放在近乎空的棋盘上,并点亮它能到达的每个格子。拖动棋子,或先点棋子再点亮起的格子,亮格就会随之变化。课程中黑方不会应手,因此你可以连续移动同一个棋子。所有棋子都遵守两条规则:不能走到己方棋子已经占据的格子;走到对方棋子占据的格子时,就吃掉该棋子,被吃的棋子离开棋盘(FIDE 3.1)。本页把被吃的棋子排列在棋盘旁,方便你看出双方各损失了什么。
王
王可以朝任何方向走一格:向前、向后、横向或斜向(FIDE 3.8.1)。在棋盘中央可达八格,在角落只能到三格。王绝不能走到敌方棋子攻击的格子,也永远不会被吃掉。相反,当王受到攻击又无路可逃时,棋局便结束。这就是下文要介绍的将杀。
车
车可以沿直线或横线走任意格数,但不能越过挡路的棋子(FIDE 3.3 和 3.5)。在空棋盘上,车无论站在哪里都能到达 14 格,因为所在直线总有七格可走,横线也总有七格。其他棋子的活动范围都取决于所在位置,只有车例外。
象
象可以沿斜线走任意格数(FIDE 3.2)。斜线由同色格组成(FIDE 2.4),因此从白格出发的象整局都留在白格上。这也是每方有两个象的原因:c1 上的象控制黑格,f1 上的象控制白格。角落的象可达 7 格,中央的象可达 13 格。
后
后结合了车和象的走法,可以沿直线、横线或斜线走任意距离(FIDE 3.4)。在后的课程里,后从 d4 出发,读数显示它能到达的格数。空棋盘上应是 27 格,为所有棋子之最;课程棋盘上,己方 a1 的王占去一格,因此亮起 26 格。很久以前,后曾是最弱的棋子之一。下文的旧规则部分会解释这种变化。
马
马走到最近、但不在自身直线、横线或斜线上的格子之一(FIDE 3.6)。实际走法呈 L 形:沿一个方向走两格,再向侧面走一格。马是唯一可以跳跃的棋子。起点和落点之间的棋子不影响它,所以当其他棋子还被己方兵挡住时,马第一步就能从角部区域跳出。马每走一步都会从白格到黑格,或从黑格到白格。中央的马有八种走法,角落的马只有两种。
兵
兵是唯一不能后退的棋子。前方格子为空时,它可以直向前走一格。首次移动也可以前进两格,但两格都必须为空(FIDE 3.7.1 和 3.7.2)。兵的吃法与走法不同:斜向前一格,吃掉占据该格的敌子(FIDE 3.7.3)。兵被前方棋子挡住时,除非有子可吃,否则完全不能移动。在兵的课程里,d2 的白兵先走两格到 d4,再到 c5 吃子。
棋子的价值
棋手通过计算子力判断兑子是否划算。卡帕布兰卡 1921 年写道,并不存在完整准确的价值表,只有比较:多数情况下象和马大致等值;象往往超过三个兵;车相当于一匹马加两个兵;双车略强于一个后。本页引擎使用固定数值作为模型:兵 100、马 310、象 330、车 500、后 900。「对弈」标签页的读数以兵为单位显示双方差值,并给位置良好的棋子加少量分数。
三种特殊着法
王车易位
王车易位是唯一同时移动两个棋子的着法。王朝己方一个车的方向走两格,然后车跳到王刚刚经过的格子(FIDE 3.8.2)。白方王翼易位时,王从 e1 到 g1,车从 h1 到 f1;后翼易位时,王到 c1,车从 a1 到 d1。一次易位就能让王藏到兵后,同时把车调向中央。
只要王已经移动过,易位权便永久丧失;某个车已经移动过,则不能再与该车易位(FIDE 3.8.2.1)。如果王车之间有棋子、王正被将军、王需要经过对方攻击的格子,或王落点受到将军,易位也暂时不能进行(FIDE 3.8.2.2)。第二个易位课程展示这种情况。b5 的黑象攻击 f1,王不能经过该格,所以短易位不会亮起。长易位仍可进行,因为王所用的 d1 和 c1 都安全。
请留意规则没有要求什么。长易位中,车经过 b1,而 b1 可以受到攻击。只有王当前所在、经过和到达的格子必须安全。
吃过路兵
兵首次前进两格时,可能从守候在它跳过格子旁边的敌兵身边溜过。规则堵住了这个空子。如果一个兵前进两格后落在敌兵旁,敌兵可以把它当作只前进一格来吃,自己落到被跳过的格子上(FIDE 3.7.3.1)。这个着法的法语名称意为「经过时」。但它有时限:只能在紧接着的一步吃。如果不立即抓住机会,就再也不能这样吃了(FIDE 3.7.3.2)。
吃过路兵课程采用斯汤顿《Blue Book of Chess》中的真实对局:马拉切对墨菲。7.e5 之后,黑方走 7...d5,d 兵前进两格,越过 e5 的白兵。马拉切以 8.exd6 吃过路兵。展台停在这一刻,点亮 d6。
升变
兵到达最远的横线后,不能继续当兵。同一步棋内,它必须变成由棋手选择的己方后、车、象或马(FIDE 3.7.3.3)。选择不受已经被吃棋子的限制(FIDE 3.7.3.4),因此一方可以有两个甚至更多的后。选择后以外的棋子称为低升变。听起来似乎没意义,但某些局面只有马能将杀,本页就有两道这样的题。在展台升变时,小框会询问你想变成哪种棋子。
将军、将杀与和棋方式
敌方棋子攻击王时,王就处于被将军状态(FIDE 3.9.1)。棋手绝不能走出让己王继续被将军,或使己王遭到将军的一步(FIDE 3.9.2)。仅这一条规则就足以确定游戏的目标。如果你的王被将军,却没有任何合法着法能够解除,你便被将杀,输掉棋局(FIDE 1.4.1 和 5.1.1)。从来没有人会吃掉王。
三种应将方法
将军课程把黑车放在 e8,沿开放的直线对着 e1 的白王。白方有三类应对,展台只点亮这些着法,因为其他着法都不合法。
- 移动王到未受攻击的格子。这里 d1 和 f1 都可走。
- 垫子,把一个棋子放在车与王之间。d2 的象可以到 e3,g1 的马可以到 e2,后可以到 e4。
- 吃掉将军的棋子。a4 的后可以沿斜线吃掉 e8 的车。
马将军时无法垫子,因为马会跳跃。两个棋子同时将军称为双将,此时只能移动王来应对。棋谱库中的雷蒂对局以双将后接将杀结束。
逼和
轮到走棋的一方没有合法着法,却没有被将军,棋局便为和棋。这就是逼和(FIDE 5.2.1),也是初学者把必胜局面丢成和棋最常见的方式。逼和课程展示王后对角落孤王的局面。1.Qb6 看似收紧包围,却让黑王无棋可走又未被将军,因此立即和棋。随后展台演示正确着法 1.Qb7,这步是将杀,因为白王保护着白后。
其他和棋
如果双方无论怎样连续走出合法着法,都不可能将杀,棋局也为和棋,这称为死局(FIDE 5.2.2)。单王对单王是死局,王象对单王、王马对单王也是。如果同一局面即将第三次出现,或双方各走了 50 步都没有吃子或动兵,棋手可以申请和棋(FIDE 9.2 和 9.3)。即使无人申请,同一局面出现五次,或双方各走了 75 步没有吃子或动兵,也会自动判和(FIDE 9.6)。双方还可以直接协议和棋。「对弈」标签页遵循自动判和规则。
四种基本将杀
多数棋局在终局前很久就已胜负分明,但每个棋手都需要掌握几种总能奏效的杀法。教程分别演示其中四种。你可以暂停,用箭头前后逐步查看,或拖动着法滑块。
底线杀
易位后的王通常藏在三个兵后面。如果敌车或敌后到达底线,这层保护就会变成陷阱,因为己方兵堵住了王的逃路。课程中,白车从 d1 到 d8,即成将杀。棋手通常通过及时给王留出逃生格来防范,常见做法是把其中一个兵前进一步。
双车阶梯杀
双车无需己王帮助就能将杀孤王。一个车沿横线将军,迫使王后退;另一个车控制相邻横线,使王不能再向前。随后双车交换角色。课程用四步完成:1.Ra5 截断王的去路,2.Rh6+ 逼它后退,3.Ra7+ 再逼一步,4.Rh8# 在边线上完成将杀。
有保护的后将杀
后紧靠敌王时,可以控制其周围所有格子,但王本来可以直接吃后。如果后有保护,例如由己王保护,吃后就不合法,于是成为将杀。课程中,白王位于 b6,白后到达 b7,紧邻 a8 的黑王。
王后对单王
只有王后时,强方必须把孤王赶到棋盘边缘。后与敌王保持马步距离,在不造成逼和的情况下围出一个框,并逐步缩小。然后白王靠近,保护后完成最后的将军。卡帕布兰卡写道,这种残局「总应在不到十步内完成」。本页的简单引擎从课程局面出发用了 12 步,体现了短程规则搜索与世界冠军的差距。
开局的五个要点
最初十来步决定棋子在后续棋局中的位置。卡帕布兰卡的《Chess Fundamentals》(1921)和拉斯克的《Chess Strategy》(1915)都给出开局经验原则,其中五条就涵盖了初学者所需的大部分内容。
- 占领中心。 中央的 e4、d4、e5、d5 四格最重要;卡帕布兰卡称控制中心「极为重要」。兵走到 e4 或 d4,也为后和一个象打开线路。
- 出动马和象。 拉斯克写道,「迅速出子至关重要」:率先把棋子从不便活动的初始格调到有用位置的一方,机会更好。
- 每子只走一次。 卡帕布兰卡说:「出子尚未完成前,任何棋子都不应移动超过一次」,除非能赢得子力,或为取得行动自由而必须如此。
- 后不要过早出动。 拉斯克称过早出后「违背稳健下法的原则」:对手可以一边出子,一边把后赶走。
- 易位。 王到达安全位置,车则靠近中心。
开局步骤演示意大利开局:1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.O-O O-O 7.Re1,字幕指出每一步采用的要点。这些原则都不是绝对的,而违背它们最著名的例子,正是歌剧院对局本身。拉斯克借此说明浪费时间的代价。黑方第二步 d6 把 f8 的象关住,第三步 Bg4 则让白方赢得时间,因为这个象走了两次后不得不交换。到第 12 回合,白方已易位并把车调到开放的 d 线,而黑王仍在中央,f8 的象和 h8 的车还没有动。
习题:一步将杀
「习题」标签页有 38 个局面,轮到走棋的一方都能一步将杀。题目按杀法分组:底线杀、角落的王、有保护的后、双车、后象、闷杀(马将军,而王被己方棋子困住)、车马、边线上的马车、升变、升变为马、吃过路兵将杀、易位将杀,以及真实对局局面。最后一组取自五局棋的最后时刻:愚人杀、学者杀、歌剧院对局、雷蒂对塔塔科维尔,以及马拉切对墨菲。
每道题都为本展品编写,并由驱动展台的同一程序检查。程序走遍局面中的所有合法着法,再查看结果。只有恰好一步能够将杀的题才会保留,因此不会有第二个答案。检查还确保局面可能在实际棋局中出现:双王都在棋盘上、刚走完的一方没有被将军、第一或最后横线上没有兵。如果走错,展台会告诉你这步是否将军,然后把棋子复原。提示会点亮应移动的棋子;答案按钮则画出箭头。
部分题目轮到黑方走,此时棋盘会转向,让黑方位于下方。
国际象棋有多少种棋局?
初始局面白方有 20 种走法:八个兵各能前进一格或两格,每个马各有两个落点。黑方同样有 20 种应手,因此双方各走一步后有 400 种可能局面。如此逐个半回合计算(一个半回合指一方走一步),数量会迅速增长。
| 半回合数 | 可能棋局数 | 以将杀结束 |
|---|---|---|
| 1 | 20 | 0 |
| 2 | 400 | 0 |
| 3 | 8,902 | 0 |
| 4 | 197,281 | 8 |
| 5 | 4,865,609 | 347 |
| 6 | 119,060,324 | 10,828 |
| 8 | 84,998,978,956 | 9,852,036 |
这些计数来自 On-Line Encyclopedia of Integer Sequences(数列 A048987 和 A079485)。控件下方的实验区会在浏览器中重新计算前四行,方法是从每个局面走遍所有合法着法,并将结果与已发表的数值比较。四个半回合意味着 197,281 条路线,在手机上需要等一会儿。程序员称这种计算为 perft,它是国际象棋着法生成器的标准测试:哪怕只漏掉一条规则,例如允许吃过路兵后暴露己王,也会改变结果。本页规则用这种方法从初始局面及另外五个含有大量易位、吃过路兵和升变的著名测试局面进行过检查。
将杀一栏有个小小的意外:第四个半回合之前,任何棋局都不可能将杀,而第四个半回合恰有 8 局以将杀结束。愚人杀 1.f3 e5 2.g4 Qh4# 就是其中之一。
香农的估计
1950 年,工程师克劳德·香农发表论文《Programming a Computer for Playing Chess》。他指出,典型局面约有 30 种合法着法,因此白方一步加黑方一步应手约有 10³ 种可能,而典型棋局约持续 40 回合。这样便有 10¹²⁰ 种可能棋局。他写道,即使机器每微秒检查一局,也需要超过 10⁹⁰ 年才能选出第一步。这个数字如今称为香农数。它是数量级估计,不是精确计数。
香农还估计了局面数:64! 除以 32!、8! 的平方和 2!⁶,「约为 10⁴³」。实验区会精确计算该表达式:结果是一个以 4,634 开头的 43 位数。
后来的估计并不一致
维克托·阿利斯在 1994 年于马斯特里赫特的林堡大学完成的论文中,把局面数估得更高,约为 10⁵⁰;计入所有可能的升变后,上界为 5 × 10⁵²,并认为 10⁴³ 太低。对于博弈树规模,他采用每局面平均 35 种着法、棋局长度 80 个半回合,得到约 10¹²³。这两个数字都不精确。它们用不同方法统计不同对象,本页将两者并列展示。这里采用的资料都没有给出合法国际象棋局面的确切总数。
马的周游
马能恰好访问棋盘每格一次吗?能,而且人们研究这一问题已有数百年。莱昂哈德·欧拉 1759 年报告了一篇论文,1766 年刊印,其中给出构造周游的方法,包括闭合周游:最后一格与第一格相隔一个马步,使马可以重新开始。
「大数」标签页从 b1 演示一条闭合周游,并在棋盘上写出访问顺序。寻找路线采用简单的经验规则:总是跳到剩余后续走法最少的格子,如果这条规则导致死路,再做少量回溯。单用这条规则就能从全部 64 个起点找到完整周游,展品检查程序也确认了这一点。你还可以自己尝试,选择起点后跳跃;提示按钮会点亮出口最少的格子。
共有多少条周游?1996 年,勒宾和韦格纳发表的闭合周游计数为 33,439,123,484,294。布伦丹·麦凯在 1997 年用不同方法重算,发现此前的计算执行有误。他的总数为 13,267,364,410,532 条闭合周游,同一路线及其逆向只算一次;若棋盘旋转和镜像也算相同,则为 1,658,420,855,433 条。不返回起点的开放周游更多得多:OEIS 列出 8 行 8 列棋盘上共有 19,591,828,170,979,904 条有向开放周游。
实验区还测量马步距离。从 b1 到 h8,马最少需要 5 步,其中一项任务就是用五步完成。
八皇后
后攻击所在直线、横线和斜线的每个格子。棋盘上最多能放多少个互不攻击的后?不超过八个,因为每个后都需要独占一条横线。八个确实可行,恰有 92 种摆法。如果互为旋转或镜像的摆法算作相同,就剩下 12 种不同解。
艾兹赫尔·戴克斯特拉在编程艺术笔记 EWD 316 中,用这道题展示称为回溯的方法。先在第一横线放一个后,再在第二横线安全的位置放一个,以此类推。当没有安全格子时,退回上一横线,移动那里的后。仔细执行,就能不重不漏地遍历所有可能,在不到一秒内找出全部 92 个解,本页加载时所做的正是如此。
在展台上,你可以逐一查看 92 个解,也可以自己摆后。被攻击的格子变红,互相攻击的后以红线相连。八个后都安全时,本页会告诉你找到了 92 个解中的哪一个,并在实验区保留列表。那里的表格还列出 OEIS 提供的其他棋盘尺寸的解数:2 行 2 列和 3 行 3 列无解,4 行 4 列有 2 解,5 行 5 列有 10 解,随后依次为 4、40 和 92。
棋盘上的米粒
一个古老故事用谷物作为奖赏:棋盘第一格放一粒,第二格两粒,第三格四粒,每格翻倍,直到第 64 格。历史学家 H. J. R. Murray 在《A History of Chess》(1913)中,沿着阿拉伯文献和早期西方数学手稿追溯「棋盘格上的翻倍」。他引用的阿拉伯故事使用的是谷物。现代许多转述改用大米,本页也如此。
第 k 格有 2 的 k − 1 次方粒米,前 k 格总和比下一格少一粒,即 2ᵏ − 1。全部 64 格共有 18,446,744,073,709,551,615 粒。
一粒精米重约 20 mg。这是估计值:正如 FAO 的种植指南所指出的,1,000 粒谷物的重量是衡量水稻品种的标准指标,不同品种重量不同,因此实验区允许调整。按 20 mg 计算,整盘约有 3.7 × 10¹¹ 吨。FAO 的 2025 年 11 月《Food Outlook》给出的 2024/25 年度世界大米产量为精米 549,800,000 吨。这盘米约需全球 671 年的收成。
展台先逐粒显示前几格,再在桌边堆出单独一格的米量,采用 32 度坡角和每立方米 0.78 吨的堆积密度(两者均为估计值)。仅第 31 格就有 1,073,741,824 粒,约 21.5 吨,米堆约高 1.8 m,略高于 1.7 m 的人形模型。第 32 格的米堆宽近 9 m。
1500 年以前:较慢的棋局
国际象棋并非一直采用今天的规则。Murray 把欧洲国际象棋追溯到七世纪初印度的祖先恰图兰卡,并描述它如何经过波斯和阿拉伯世界传入欧洲,在阿拉伯世界它被称为沙特兰兹。两个棋子的走法大不相同。王旁边的 fers,即顾问,只能斜走一格。位于现代象位置的 alfil,即大象,恰好斜跳两格,可以越过中间任何棋子。
威廉·卡克斯顿的《The Game and Playe of the Chesse》是最早用英语印刷的书籍之一,仍采用旧走法。卡克斯顿把译稿完成日期记为 1474 年 3 月最后一天;该书编辑解释,当时一年从复活节开始,因此按今天的纪年是 1475 年 3 月 31 日。他的后「从黑格到黑格,或从白格到白格」,沿斜线走一步;他的 alphyn「走三个点」,连自身所在格一起算是三点,也就是跳两格。棋子如此缓慢,组织进攻便需要许多步。
随后在 15 世纪最后几年,意大利、法国和西班牙出现一种新棋。Murray 写道,它与旧棋只有两点不同:后和象获得了今天仍采用的走法。它有「scacchi de la donna」和「esches de la dame enragée」等名称,即后的棋。到 1600 年,它已传遍西欧;更快的棋子让开局变得比以往重要。
开启「1500 年以前的规则」,展台会显示带标记格的朴素旧棋盘,并点亮后和象的旧走法。差别一目了然:从 d4 出发,旧后只能到四格,而非 27 格;旧象无论怎么走,都只能访问棋盘上的 8 格。
下棋的机器
土耳其行棋傀儡
从 1770 年代开始,一座带坐姿人偶的柜子巡游欧洲,下棋击败访客。1821 年,罗伯特·威利斯发表《An Attempt to Analyse the Automaton Chess Player of Mr. de Kempelen》,根据其尺寸和行为论证,它根本不是机器,而是「完全由藏在内部的人操纵控制」。柜子里藏着一位高手。
香农的方案
香农 1950 年的论文为真正的程序制定了方案。既然无法搜索全部 10¹²⁰ 种棋局,机器就应向前看几步,为产生的每个局面评分(先考虑子力,再考虑棋子机动性和兵形等),并在假定对手也会正确应对的前提下,选择能带来最高分的着法。此后的国际象棋程序一直沿用这一思路。Computer History Museum 的在线展览《Mastering the Game》继续讲述了后来的故事。
深蓝
1997 年,IBM 的深蓝在六局比赛中击败世界冠军加里·卡斯帕罗夫。IBM 给出的速度是使用 32 个处理器,每秒评估 2 亿个局面。设计者 Murray Campbell、Joseph Hoane 和 Feng-hsiung Hsu 于 2002 年在《Artificial Intelligence》期刊介绍了这台机器。
AlphaZero
2017 年,David Silver 与同事介绍了 AlphaZero,它只知道规则,通过自我对弈学习。从随机下棋开始,它在 24 小时内就达到作者所称的国际象棋、日本将棋和围棋的超人水平,并在每一种棋中击败世界冠军级程序。
本页的引擎
「对弈」标签页的对手比这两者简单得多。它专为本展品编写,只从规则出发。引擎生成全部合法着法,以标准剪枝方法(alpha-beta 搜索)向前查看一至三个半回合;搜索末端继续追踪吃子,避免停在兑子中途;并用前述棋子模型价值,加上奖励中央马、前进兵和安全王的小型位置表来评分。在最低强度下,它给选择加入随机噪声,以犯出初学者式的错误,但绝不会漏掉一步将杀。两位棋手也可以共用一个屏幕对弈。
引擎与每节课程背后的规则使用同一套代码。页面发布前,检查程序会从六个测试局面统计着法树,解出全部 38 道题,重放棋谱库每局棋并确认结局符合说明,还会核对八皇后与马的周游的数值。
可以试试
- 等歌剧院对局结束,按「慢速观看」,阅读第 6、9、16 回合的字幕。
- 在马的课程中,数一数马站在角落时有几种走法。
- 在第二节易位课中尝试让王经过受攻击格。王不会过去。
- 把兵升变成马,看看选择框,再找出只有马才能将杀的两道题。
- 在「对弈」中开启「受攻击格」,观察出子时红格如何变化。
- 自己找出八皇后的解,看看是 92 个解中的哪一个。
- 在「我」中输入生日。米粒棋盘会显示与你年龄对应的格子有多少粒米。
- 开启旧规则,试着把旧象从 c1 走到 d2。它永远到不了。
常见问题
国际象棋棋盘怎么摆?
转动棋盘,让右手近处角格为浅色。两个角放车,然后依次是马和象。后放本色格(白后在 d1,黑后在 d8),王在旁边。兵排满第二和第七横线。
国际象棋谁先走?
白方始终先走,之后双方轮流,不能停着不走。
哪个棋子最强?
后。在空棋盘中央,它能到达 27 格。王最重要,因为王被将杀就输棋,但王每次只能走一格。
马能跳过其他棋子吗?
能。马是唯一能跳跃的棋子,所以起点和落点之间的棋子不会阻挡它。
兵能后退吗?
不能。兵只能向前走一格,首次可走两格,吃子则斜向前一格。
什么是吃过路兵?
兵前进两格后落在敌兵旁,敌兵可以把它当作只前进一格来吃。但必须在紧接着的一步进行,否则机会消失(FIDE 3.7.3.1 和 3.7.3.2)。
被将军时,或需要经过被攻击格时,可以易位吗?
不可以。被将军时不能易位,王不能经过受攻击格,也不能落在被将军的格子。但车可以经过受攻击格(FIDE 3.8.2.2)。
可以有两个后吗?
可以。兵升变时可以变成王以外的任一种棋子,不论该棋子此前是否被吃,所以第二个甚至第九个后都是合法的(FIDE 3.7.3.4)。
将杀与逼和有什么区别?
将杀时,王被将军且任何着法都救不了,棋局判负。逼和时,轮到走棋的一方没有合法着法,却未被将军,棋局判和(FIDE 5.1.1 和 5.2.1)。
最快的将杀是什么?
愚人杀:1.f3 e5 2.g4 Qh4#。第四个半回合之前,不可能出现将杀;恰有 8 种不同棋局在此时将杀(OEIS A079485)。
国际象棋有多少种可能棋局?
没人确切知道。四个半回合之后有 197,281 种,八个之后有 84,998,978,956 种。对于完整棋局,香农在 1950 年估计为 10¹²⁰,阿利斯在 1994 年估计约为 10¹²³。两者都是粗略估计。
棋钟有什么用?
限时棋局中,每位棋手都有一只计时钟。走完一步后按自己一侧的按钮,己方计时停止,对方计时开始。规则第 6 条说明了使用方法。
八皇后问题有多少个解?
92 个;若旋转和镜像算相同,则为 12 个(OEIS A000170 和 A002562)。
马的周游有多少条?
闭合周游有 13,267,364,410,532 条,同一路线及其逆向只计一次(McKay,1997)。1996 年发表的早期计数 33,439,123,484,294 是错误的。
故事里棋盘上有多少米?
18,446,744,073,709,551,615 粒。按每粒约 20 mg 算,约为 3.7 × 10¹¹ 吨,相当于按 2024/25 年度水平计算的全球约 671 年大米产量。
后一直这样走吗?
不是。中世纪国际象棋中,后的前身 fers 只能斜走一格。现代后在 1500 年前不久出现,到 1600 年已遍及西欧。
本页电脑对手有多强?
它是向前搜索一至三个半回合的小型规则引擎。能击败初学者,但会输给俱乐部棋手。最低等级故意犯错,但总能抓住一步将杀。
本页棋谱来自哪里?
歌剧院对局和雷蒂对塔塔科维尔来自拉斯克的《Chess Strategy》(1915);马拉切对墨菲和安德森对希勒尔来自斯汤顿的《Blue Book of Chess》。两书均可在 Project Gutenberg 阅读。对局着法是事实,可以自由转载。
术语
- 直线、横线: 棋盘的列(a 至 h)和行(1 至 8)。
- 半回合: 一方走一步。棋谱中一个带编号的回合包含两个半回合,白黑各一步。
- 将军、将杀: 王受到攻击;王受到攻击且无法脱身。
- 逼和: 没有合法着法,也没有被将军,判和棋。
- 王车易位: 王朝车走两格,车移到另一侧;每局一次。
- 吃过路兵: 把刚前进两格的兵当作只走一格来吃。
- 升变、低升变: 兵到达最后横线后变成其他棋子;选择后以外的棋子。
- 出子: 把棋子从初始格调动到参与对局的位置。
- Perft: 统计指定深度的全部合法路线,用于测试着法生成器。
- 马的周游、闭合周游: 马访问每格一次;若最后一格与第一格相隔一个马步,则为闭合周游。
- Fers、alfil: 后来演变成后和象的中世纪棋子。
参考资料
- FIDE, Laws of Chess,2023 年 1 月 1 日生效: https://handbook.fide.com/chapter/E012023 (核对日期:2026 年 10 月 20 日)
- FIDE, Rating Regulations,2024 年 3 月 1 日生效: https://handbook.fide.com/chapter/B022024 (核对日期:2026 年 10 月 20 日)
- FIDE, About FIDE(1924 年在巴黎成立): https://www.fide.com/about (核对日期:2026 年 10 月 20 日)
- C. E. Shannon, "Programming a Computer for Playing Chess", Philosophical Magazine 41 (1950), 文本副本见 INFN Pisa: https://www.pi.infn.it/~carosi/chess/shannon.txt (核对日期:2026 年 10 月 20 日)
- C. E. Shannon, 同一论文的 PDF,University of Pavia 课程页面: https://vision.unipv.it/IA1/aa2009-2010/ProgrammingaComputerforPlayingChess.pdf (核对日期:2026 年 10 月 20 日)
- L. V. Allis, Searching for Solutions in Games and Artificial Intelligence, 博士论文,University of Limburg 1994(Maastricht University): https://project.dke.maastrichtuniversity.nl/games/files/phd/SearchingForSolutions.pdf (核对日期:2026 年 10 月 20 日)
- OEIS A048987, 第 n 个半回合结束时的可能棋局数: https://oeis.org/A048987 (核对日期:2026 年 10 月 20 日)
- OEIS A079485, 恰好在 n 个半回合后以将杀结束的棋局数: https://oeis.org/A079485 (核对日期:2026 年 10 月 20 日)
- OEIS A000170, 在 n × n 棋盘上摆 n 个互不攻击的后的方法数: https://oeis.org/A000170 (核对日期:2026 年 10 月 20 日)
- OEIS A002562, 同上,对称解只计一次: https://oeis.org/A002562 (核对日期:2026 年 10 月 20 日)
- E. W. Dijkstra, EWD 316, A Short Introduction to the Art of Programming, E. W. Dijkstra Archive, University of Texas at Austin: https://www.cs.utexas.edu/~EWD/ewd03xx/EWD316.PDF (核对日期:2026 年 10 月 20 日)
- J. Bell, B. Stevens, "A survey of known results and research areas for n-queens", Discrete Mathematics 309 (2009): https://doi.org/10.1016/j.disc.2007.12.043 (核对日期:2026 年 10 月 20 日)
- L. Euler, "Solution d'une question curieuse que ne paroit soumise à aucune analyse" (E309), Euler Archive, University of the Pacific: https://scholarlycommons.pacific.edu/euler-works/309/ (核对日期:2026 年 10 月 20 日)
- B. D. McKay, "Knight's Tours of an 8 × 8 Chessboard", Australian National University, 1997: https://users.cecs.anu.edu.au/~bdm/papers/knights.pdf (核对日期:2026 年 10 月 20 日)
- M. Löbbing, I. Wegener, "The Number of Knight's Tours Equals 33,439,123,484,294", Electronic Journal of Combinatorics 3 (1996), 附评论: https://www.combinatorics.org/ojs/index.php/eljc/article/view/v3i1r5 (核对日期:2026 年 10 月 20 日)
- OEIS A001230, 2n × 2n 棋盘上无向闭合马的周游数量: https://oeis.org/A001230 (核对日期:2026 年 10 月 20 日)
- OEIS A165134, n × n 马步图中的有向哈密顿路径数量: https://oeis.org/A165134 (核对日期:2026 年 10 月 20 日)
- IBM, Deep Blue: https://www.ibm.com/history/deep-blue (核对日期:2026 年 10 月 20 日)
- M. Campbell, A. J. Hoane Jr., F. Hsu, "Deep Blue", Artificial Intelligence 134 (2002): https://doi.org/10.1016/S0004-3702%2801%2900129-1 (核对日期:2026 年 10 月 20 日)
- D. Silver 等, "Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm", arXiv 2017: https://arxiv.org/abs/1712.01815 (核对日期:2026 年 10 月 20 日)
- Computer History Museum, Mastering the Game: https://www.computerhistory.org/chess/ (核对日期:2026 年 10 月 20 日)
- E. Lasker, Chess Strategy (英语译本,1915), Project Gutenberg: https://www.gutenberg.org/ebooks/5614 (核对日期:2026 年 10 月 20 日)
- F. M. Edge, The Exploits and Triumphs, in Europe, of Paul Morphy, the Chess Champion (1859), Project Gutenberg: https://www.gutenberg.org/ebooks/34180 (核对日期:2026 年 10 月 20 日)
- J. R. Capablanca, Chess Fundamentals (1921), Project Gutenberg: https://www.gutenberg.org/ebooks/33870 (核对日期:2026 年 10 月 20 日)
- H. Staunton, The Blue Book of Chess, Project Gutenberg: https://www.gutenberg.org/ebooks/16377 (核对日期:2026 年 10 月 20 日)
- W. Caxton, The Game and Playe of the Chesse (1474), Project Gutenberg: https://www.gutenberg.org/ebooks/10672 (核对日期:2026 年 10 月 20 日)
- R. Willis, An Attempt to Analyse the Automaton Chess Player of Mr. de Kempelen (1821), Project Gutenberg: https://www.gutenberg.org/ebooks/61410 (核对日期:2026 年 10 月 20 日)
- H. E. Bird, Chess History and Reminiscences (1893), Project Gutenberg: https://www.gutenberg.org/ebooks/4902 (核对日期:2026 年 10 月 20 日)
- H. J. R. Murray, A History of Chess (1913), Internet Archive: https://archive.org/details/AHistoryOfChessHJRMurray (核对日期:2026 年 10 月 20 日)
- FAO, Food Outlook,2025 年 11 月,大米: https://www.fao.org/3/cd7448en/cd7448en_rice.pdf (核对日期:2026 年 10 月 20 日)
- FAO, Guidelines on rice production in Fiji(谷粒重量): https://openknowledge.fao.org/bitstreams/383a4984-bbb8-4bbc-829c-e35db9230af1/download (核对日期:2026 年 10 月 20 日)
解说文章与模拟采用 CC BY-NC-SA 4.0 许可,另有说明的除外。





