PGN 记录的是一盘棋,FEN 记录的是一个局面。当你想说“就是这个位置,轮到白方走”,用的就是 FEN。
初始局面的 FEN 长这样:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
看着像乱码,其实是六段用空格分开的信息。
可以直接在上方的解码器里粘贴自己的 FEN。内容不会上传;需要移动棋子或修正字段时,打开免费的棋盘编辑器。
六个字段
1. 棋子摆放
从第 8 横线(黑方底线)写到第 1 横线,每条横线之间用 / 分隔。
- 大写字母是白方:
KQRBNP - 小写字母是黑方:
kqrbnp - 数字表示连续空格子的数量
所以 rnbqkbnr 是黑方底线(车马象后王象马车),pppppppp 是黑兵,8 表示整条横线全空。
2. 轮到谁走
w 或 b。
3. 易位权
KQkq 分别表示:白方可短易位、白方可长易位、黑方可短易位、黑方可长易位。任何一方失去某种权利就去掉对应字母;全部失去写 -。
注意:这里记的是权利,不是“现在能不能走”。王和车没动过,权利就在,哪怕此刻路径被挡住。
4. 吃过路兵的目标格
如果上一步是兵走了两格,这里写它“经过”的那个格子(例如 e3),否则写 -。写的是经过的格子,不是兵停下的格子。
5. 半回合计数
自上一次吃子或兵移动以来的半回合数,用于 50 回合规则。达到 100 时可以提出和棋主张。
6. 回合数
从 1 开始,黑方走完加 1。
第二个例子:1.e4 之后
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1
变化的部分:第 4 横线出现 4P3(四个空格子、一个白兵、三个空格子),白方第 2 横线变成 PPPP1PPP(e2 空了),轮到黑方走(b),吃过路兵目标格是 e3,回合数仍是 1(黑方还没走)。
哪里会用到 FEN
- 残局训练题:一道题就是一个 FEN。
- 引擎分析:把 FEN 粘进 Lichess 或 Chess.com 的分析板,直接从这个局面开始算。
- 从中局开始的对局:PGN 里加一个
[FEN "..."]标签,就能表示这盘棋不是从初始局面开始的。 - 写文章、发帖:一行文本就能让别人复现你说的那个位置。
怎么从 FEN 判断是不是将死
FEN 字符串从来不会写“将军”或“将死”。它没有这样的字段,因为这个信息由其他六个字段决定:知道了棋子在哪、轮到谁走,剩下的交给国际象棋规则就行。判断方法:
- 看走棋方(第 2 个字段)。你要检查的就是这一方的王。
- 这个王是否受到攻击? 如果没有任何对方棋子攻击它所在的格子,局面就不是将军,更不可能是将死。
- 这一方还有没有合法着法? 被将军且没有任何合法着法(无路可逃、吃不掉将军的子、也没有子能垫将),就是将死。没有被将军、却没有任何合法着法,是逼和,算和棋。
下面是国际象棋里最快的将死——“愚人杀”(Fool's Mate),走完 1.f3 e5 2.g4 Qh4# 之后的局面:
rnb1kbnr/pppp1ppp/8/4p3/6Pq/5P2/PPPPP2P/RNBQKBNR w KQkq - 1 3
走棋方是 w,所以要看的是 e1 上的白王。h4 上的黑后沿着经过 g3 和 f2 的斜线攻击它。白王无处可走:d1、d2、e2 和 f1 都被自己的棋子占着,f2 又在黑后的控制之下。白方没有任何棋子能吃掉 h4 的后,也没有棋子能走到 f2 或 g3 挡住这条斜线。白方没有合法着法,所以这是将死。
简单的例子用眼睛看没问题,到了子力密集的中局就很容易看错。把任意 FEN 粘贴进免费的棋盘编辑器:它除了检查字符串是否合法,还会告诉你走棋方是被将军、被将死还是被逼和。FEN 自己还能判定另一件事——50 回合规则:半回合计数(第 5 个字段)达到 100 时,任何一方都可以主张和棋。
从你的对局里拿到 FEN
用 ScanChess 扫描记谱单得到完整对局后,在棋盘上走到任意一步,就能取到该局面的 FEN。棋盘照片识别功能则可以直接从一张棋盘照片得到 FEN——适合你只想记录“当时的样子”而没有完整记谱的情况(这个功能消耗 1 个积分)。
一句话总结
FEN = 棋子摆放 + 轮谁走 + 易位权 + 吃过路兵目标格 + 半回合计数 + 回合数。PGN 讲故事,FEN 拍快照。想了解 PGN,见 PGN 是什么。