图片转 FEN:读懂 FEN,并从图片中得到它
适用于 iPhone、iPad、Mac 和 Android。无需账户。
FEN 查看器
局面有效
| 棋子位置 | r1bqkb1r/pppp1ppp/2n2n2/4p2Q/2B1P3/8/PPPP1PPP/RNB1K1NR |
|---|---|
| 行棋方 | 白方 |
| 易位权 | KQkq |
| 吃过路兵 | 无 |
| 半回合计数 | 4 |
| 回合数 | 4 |
把照片或截图转换成 FEN 可以在 ChessWOW 应用中完成,直接在你的设备上进行。
FEN 是用一行文本描述一个国际象棋局面的格式。把一串 FEN 粘贴到上方的查看器中,就能看到棋盘,检查局面是否有效,并把它复制到别处。本指南讲解 FEN 的每一个部分、一张棋盘图片如何变成 FEN、哪些信息是任何图片都无法包含的,以及如何用 ChessWOW 应用从照片、截图或书中的棋图得到 FEN。
什么是 FEN
FEN 是 Forsyth-Edwards Notation(福斯夫-爱德华兹记号法)的缩写。它源自 19 世纪苏格兰记者 David Forsyth 提出的一套方法,后来由 Steven J. Edwards 扩展,以便在国际象棋软件中使用。几乎所有国际象棋程序、网站和引擎都能读写 FEN。一串 FEN 有六个字段,用空格分隔。这是初始局面:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1| 字段 | 示例 | 含义 |
|---|---|---|
| 1. 棋子位置 | rnbqkbnr/.../RNBQKBNR | 每个棋子所在的位置,从第 8 横线开始 |
| 2. 行棋方 | w | w 表示白方,b 表示黑方 |
| 3. 易位权 | KQkq | 哪些易位仍然允许,没有则写连字符 |
| 4. 吃过路兵格 | - | 兵刚刚越过的格子,没有则写连字符 |
| 5. 半回合计数 | 0 | 自上次吃子或走兵以来的步数(五十步规则) |
| 6. 回合数 | 1 | 从 1 开始,黑方每走一步后加 1 |
无论你的国际象棋应用使用哪种语言,FEN 中的字母始终是英文:K 王、Q 后、R 车、B 象、N 马、P 兵。大写字母表示白方棋子,小写字母表示黑方棋子。在易位权中,K 和 Q 分别表示白方的短易位和长易位,k 和 q 表示黑方的。
如何读懂 FEN
第一个字段逐条横线描述棋盘,从第 8 横线(黑方一侧)一直到第 1 横线(白方一侧)。每条横线内,从 a 线读到 h 线。字母代表棋子,数字代表连续的空格数,斜杠表示这条横线结束。走完 1.e4 c5 2.Nf3 后,FEN 是:
rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2rnbqkbnr:第 8 横线,黑方棋子都还在原位。pp1ppppp:第 7 横线,黑兵在 a7 和 b7,c7 为空,d7 到 h7 都有兵。8:第 6 横线全空。2p5:第 5 横线,两个空格,c5 上有一个黑兵,再是五个空格。4P3:第 4 横线,e4 上有一个白兵。5N2:第 3 横线,f3 上有一个白马。PPPP1PPP和RNBQKB1R:第 2 和第 1 横线,e2 和 g1 为空。b KQkq - 1 2:黑方行棋,四种易位权都在,没有吃过路兵格,自上次走兵以来已走一个半回合(2.Nf3),第 2 回合。
检查任何 FEN 的快速方法:每条横线加起来必须正好是八个格子,而且必须正好有八条横线。
图片无法知道的信息
图片只能显示第一个字段:棋子在哪里。其余五个字段描述的是对局的历史,而图片里没有这些信息。这一点很重要,因为同一张图片可能是一方胜,也可能是另一方胜:
- 行棋方。 你必须自己设置。书中的大多数棋图会在图注里说明,例如“白先”。
- 易位权。 站在初始格上的王和车,之前可能动过,也可能没动过。只有确定它们没动过时,才开启易位权。
- 吃过路兵。 如果上一步是兵前进两格,它越过的格子就写进第 4 个字段。在
rnbqkbnr/ppp2ppp/4p3/3pP3/8/8/PPPP1PPP/RNBQKBNR w KQkq d6 0 3(1.e4 e6 2.e5 d5 之后)中,白方可以 exd6 吃过路兵。最初的标准规定每次兵走两格后都要写上这个格子;许多程序只在确实可以吃过路兵时才写。大多数软件两种写法都能读取。 - 半回合计数和回合数。 它们只对五十步规则和显示有影响。如果不知道,通常写
0 1。
图片转 FEN 的原理
把图片转换成 FEN 是一项模式识别任务。识别工具一般按以下步骤工作:
- 找到棋盘。 在图片中定位棋盘的四个角。照片里的棋盘常常是歪的或斜着拍的,所以要把图像校正成正方形。
- 划分格子。 把正方形棋盘切成 8 × 8 共 64 个格子。
- 识别每个格子。 对每个格子,工具要在 13 种可能中做出判断:空格,或者白方、黑方六种棋子中的一种。
- 判断朝向。 工具要判断哪一方在下方。印在棋盘边上的坐标会有帮助;没有坐标时,从黑方视角看的棋盘可能会被识别成镜像。
- 生成 FEN。 64 个结果组成棋子位置字段。行棋方、易位权和吃过路兵格由你来设置。
错误通常出在第 3 步。图片太小时,象和兵看起来很像;不常见的棋子造型或配色会干扰识别;画在棋盘上的箭头或高亮格子可能会遮住棋子。所以好的工具会告诉你哪些格子它没有把握,你也应该始终把结果和原图对照一下。
拍出好图片的技巧
- 显示全部 64 个格子。 不要把棋盘裁掉一部分。裁掉棋盘周围的浏览器栏或聊天气泡没有问题。
- 能截图就截图。 二维棋盘的截图端正又清晰。对着屏幕拍照会带来反光和摩尔纹。
- 从正上方拍书。 让相机与书页平行,避免手的阴影,并确保书页平整。
- 去掉叠加标记。 箭头、彩色格子和上一步高亮都可能遮住棋子。如果可以,拍摄时把它们关掉。
- 越大越好。 截图之前,先把缩略图放大到原尺寸。每个格子的像素越多,混淆就越少。
- 记下轮到谁走。 把它写下来或看一下图注,因为你需要设置这一项。
检查 FEN:常见错误
把 FEN 粘贴到上方的查看器中,它就会检查局面。无论是手动输入的 FEN 还是识别出来的 FEN,最常见的错误有这些:
- 某条横线加起来不是八。
pp1pppp只有七个格子。逐条横线数一数字母加数字。 - 棋盘上下颠倒。 FEN 从第 1 横线开始,而不是第 8 横线。典型迹象:开局局面里白兵在第 7 横线上。
- 颜色弄反。 大小写字母混淆,白方和黑方互换了位置。
- 王。 每方必须恰好有一个王,非行棋方不能处于被将军状态。
- 兵在边线上。 兵不可能在第 1 或第 8 横线上,否则它早已升变。
- 不可能存在的易位权。
K要求白王在 e1、白车在 h1。如果其中一个不在那里,就必须去掉这项权利。 - 吃过路兵格错误。 白方行棋时它必须在第 6 横线上,黑方行棋时必须在第 3 横线上,并且正好在刚走了两格的兵后面。
- 棋子太多。 一方超过八个兵,或者棋子多于升变所能产生的数量,说明有格子识别错了。
在 ChessWOW 应用中从照片得到 FEN
本页的查看器处理的是文本。要把图片转换成 FEN,请使用 iPhone、iPad、Mac 或 Android 上的 ChessWOW 应用:
- 步骤 1
选择图片。 轻点“扫描局面”,然后拍一张照片、从图库中选一张截图、粘贴复制的图片,或者拍下书中的棋图。
- 步骤 2
检查四个角。 应用会找到棋盘。如果某个角偏了,把角标拖到正确位置。必要时可以按 90 度旋转照片或翻转棋盘。
- 步骤 3
修正棋盘。 识别没有把握的格子会被标出。轻点格子可以更换或移除棋子。
- 步骤 4
设置细节。 选择轮到哪一方走棋;只有确定适用时,才确认易位权和吃过路兵。
- 步骤 5
使用这个局面。 用 Stockfish 19 分析它、把它下完,或者把它复制为 FEN,粘贴到任何地方。
针对具体来源的更多内容:分析国际象棋截图和扫描棋书中的棋图。如果你手头根本没有图片,可以在棋盘编辑器中逐格摆出局面,它同样可以在浏览器中运行,最后会给你 FEN。
问题与解答
FEN 是什么意思?
Forsyth-Edwards Notation(福斯夫-爱德华兹记号法)。它用一行包含六个字段的文本描述一个国际象棋局面。
可以在本页把图片转换成 FEN 吗?
不可以。本页的查看器只读取和检查 FEN 文本。图片识别是 iPhone、iPad、Mac 和 Android 上 ChessWOW 应用的功能。
为什么扫描之后要设置行棋方?
图片看不出轮到谁走,而最佳走法取决于此。易位权和吃过路兵也是同样的道理。
FEN 和 PGN 有什么区别?
FEN 描述一个局面。PGN 逐步描述一整盘对局,还包含棋手和结果等信息。
FEN 末尾的两个数字是什么意思?
第一个数字计算自上次吃子或走兵以来的半回合数,用于五十步规则。第二个是回合数。如果不知道,就写 0 1。
为什么我的 FEN 无效?
最常见的原因是某条横线加起来不是八个格子、缺了一个王,或者为不在初始格上的王或车设置了易位权。
继续阅读
把下一张棋图变成 FEN。
在 iPhone、iPad、Mac 和 Android 上用 ChessWOW 扫描照片、截图和书中的棋图。