简述
FEN (Forsyth-Edwards Notation) 是专门用来表示象棋局面的记录规范,在这个规范下,一个局面可以简单地用一行“FEN格式串”来表示。
FEN 由有限的几个字母、数字和符号组成一个字符串,便于传递棋局局面信息。
FEN 格式规约
FEN 局面表示来源于国际象棋,在中国象棋的 FEN 局面记录中延续了国际象棋的规则,另有一些变通。
国际象棋的 FEN 串由 6 段 ASCII 字符组成,彼此间则空格隔开,各段所表示的意义如下:
-
棋盘上棋子位置分布;
-
轮到哪方走子;
-
王车易位可能;
-
- 关于中国象棋记谱的规范在中国象棋游戏规范的「记谱方法」一篇有详细说明。
-
无吃子或进兵步数;
-
棋局总回合数;
中国象棋有自己的一些特色,所以 FEN 串应用于中国象棋时作了以下的变通:
- 中国象棋无「王车易位」和「吃过路兵」着法,FEN 串的第 3、4 空缺;
- 国际象棋棋子颜色分「白、黑」,中国象棋棋子颜色分「红、黑」,实际应用中用「w」代表中国象棋的红方;
我们以最中国象棋的初始局面为例说明 FEN 串的结构:
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR w - - 0 1
上边的串符合前述的 FEN 的 6 段表示规则,各段之间用空间分隔:
- 第一段:
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR
表示棋盘上的棋子布局: - 中国象棋棋盘有 10 行,所以用9个「/」把每一行隔开;
- 棋子名用字母表示,小写表示黑方,大写表示红方
- 车:R/r
- 马:N/n
- 相/象:B/b
- 仕/士:A/a
- 将/帅:K/k
- 炮/砲:C/c
- 兵/卒:P/p
- 第二段:
w
表示轮到哪一方走子,「w」表示红方,「b」表示黑方; - 第三段:始终用「-」表示;
- 第四段,始终用「-」表示;
- 第五段,表示无吃子步数,通常该值达到120 就要判和 — 六十回合自然限着
- 第六段,表示总回合数,两步为一回合
FEN文件
FEN 文件它是象棋局面传递的一个有效方式;将一个代表当前局面的 FEN 串以文本文件的方式保存,通常后缀为「.FEN」,这就形成了一个 FEN 文件。
{% page-ref page="fen-ju-mian-biao-shi.md" %}