指南工具

给棋手的 FEN 解释

FEN 是 PGN 的搭档。PGN 记录一盘棋,FEN 记录一个局面,懂它能省下惊人的时间。

它是干什么的

PGN 记录一盘棋。FEN 记录一个局面,用一行文本,完完整整。

这个差别就是全部要点。当您想给别人看一个局面而不需要走到那里的过程,或者想让引擎从某个特定位置开始,或者想保存一道题时,一整盘棋是错误的容器。FEN 才是对的。

它是 Forsyth-Edwards Notation 的缩写,取自十九世纪想出它的那位记者,以及后来把它改造给计算机用的那位程序员。

六个字段

一个局面,一行文本 rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1 棋子摆放 横线 8 到 1,用斜杠分隔 4P3 四个空格、一个兵、三个空格 b 轮到谁走 KQkq 谁还能易位 e3 吃过路兵格,没有则写横杠 0 自上次吃子或兵走以来的步数 1 回合数 六个字段,空格分隔,顺序固定
1. e4 之后的局面,完整写了出来。世上每一个国际象棋程序都看得懂这一行。

棋子摆放。 横线从 8 到 1,用斜杠分隔。大写是白方,小写是黑方。数字表示连续多少个空格,所以 4P3 是四个空格、一个白兵、再三个空格。

轮到谁走。 wb。很容易被忽略,而它改变这个局面的一切。

易位权利。 KQ 表示白方的王翼和后翼,kq 是黑方的。如果谁都不能易位了就写一个横杠。这是看棋盘看不出来的信息,也正因如此才必须写下来。

吃过路兵。 这一步可以吃掉对方兵的那个格子,没有则写横杠。同样单看局面是看不出来的。

半步计数。 为五十回合规则服务,记录自上次吃子或兵走以来的步数。

回合数。 这盘棋走到第几回合。

后两个经常被随手写的工具忽略,对引擎却极其重要,因为它们决定和棋。

a b c d e f g h rnbqkbnr/ pppppppp/8/8/ 4P3 /8/PPPP1PPP/ RNBQKBNR b KQkq e3 4P3 是横线 4: 四个空格、一个兵、 三个空格
这就是那串 FEN 所描述的棋盘。把字符串从左到右、从上到下读一遍,得到的正是这个:七条横线原封不动,一个兵走了出去。

您实际会在什么时候用到

摆一个局面来分析。 把一串 FEN 粘进任何分析棋盘,您就到那里了,不用重走任何棋。

提问的时候。 分享一串 FEN,是就一个局面提问的精确方式。分享一张截图不是,因为没人能把截图粘进引擎。

保存一道题。 战术题是一个局面,不是一盘棋。

从中局开始建棋谱。 如果您想从某个特定结构而不是从第一步开始准备,FEN 就是您告诉软件从哪里起步的方式。

会出问题的两件事

缺了或写错了「轮到谁走」。 同一块棋盘,写 w 和写 b 是两个完全不同的局面,而这个错误不会出声。如果引擎给出一个说不通的评估,先查这个。

被截断的字符串。 FEN 是一行,有些聊天软件会折行或者截掉它。局面加载不出来时,数一数字段。应该是六个。

它和 PGN 的关系

两者是配合的。PGN 文件可以在标签对里带一串 FEN,用 FENSetUp 标签,这是记录一盘不从常规开局位置起步的棋的方式。

如果您是在程序之间搬运分析,多半要的是 PGN,因为它带着走法和变例。当您在意的只是那个局面本身时,再去拿 FEN。另外一半我们在 给棋手的 PGN 文件解释里讲过。

值得懂,不值得背

您永远不会手写一串 FEN。每个程序都带一个复制按钮替您生成。

值得拥有的,是出问题时能读懂它的能力:扫一眼就看出易位权利没了,或者上面写着轮到黑走而您本来指的是白。这大概要花五分钟学会,而在第一次遇到局面加载不出来时,它能替您省下一小时。

  • FEN
  • PGN
  • 记谱法