问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

FEN(局面码)是什么?

创作时间:
作者:
@小白创作中心

FEN(局面码)是什么?

引用
1
来源
1.
https://www.pikafish.com/wiki/index.php?oldid=302&title=FEN%EF%BC%88%E5%B1%80%E9%9D%A2%E7%A0%81%EF%BC%89%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F

FEN(Forsyth-Edwards Notation)是一种记录象棋局面的方法,源自国际象棋。只需要一串字符串就可以代表一个局面,非常方便,引擎接收局面也是靠FEN。一串FEN至少有局面信息和轮走方信息。

FEN的基础记录方法如下:

  1. 先开始从黑方底线记录,一直到红方底线;同时每条横线从左到右记录(红方视角下)。
  2. 每个字母分别代表一类子力:k帅将 a士 b象 c炮 n马 r车 p兵卒,大写字母代表红方的子,小写字母代表黑方的子
  3. 遇到空格时,记录连续的空格数(也有每个空格单独记作1的记法)
  4. 一条横线记录完后,以/结束,然后开始记录下一条横线。最后一条横线(红方底线)记录完时,不要写/。
  5. 全部横线记录完后,写一个空格,然后写w或者b(w红先,b黑先),也有用r代表红先的写法。

例子

该图的FEN就是 3k1a3/4a4/5n3/9/9/9/9/9/9/4KR3 w

看图,先从黑方底线开始,从左到右,第一、二、三格是空的,因为连续3个空,所以先记一个3。然后是黑将,记为k,接着又是一个空格和黑士,记1a。然后又是连续3个空,记3。至此黑方底线记录完毕,再写一个/,这就是第一段3k1a3/的由来。然后就是记黑的底二路...一直到红方底线记完,注意红方子力用大写字母表示。最后空格加w,w代表这图轮红先走。

FEN的其他信息

完整的FEN可能是这样的:

3k1a3/4a4/5n3/9/9/9/9/9/9/4KR3 w - - 0 1

后面多出了- - 0 1,其中“- -”无意义,因为FEN是从国际象棋移植而来,所以保留了国际象棋的易位和过路兵符号;

而后面的0 1,前者代表未吃子步数是0,后者代表当前回合是第1回合。未吃子步数就是自然限招信息,比如60回合自然限招代表这个数字到120就和棋。

如果FEN只有最简单的局面信息+轮走方信息,那么引擎和界面将会默认为- - 0 1或者- - 0 0

movelist

FEN仅仅代表一个局面,而FEN+movelist就可以表示历史着法信息。

比如:

5a3/3ka4/5n3/9/9/9/9/9/9/4K1R2 w moves g0f0 d8d9

这个movelist形成的局面就是“例子”中的局面。

这一串FEN+movelist代表了,从局面“5a3/3ka4/5n3/9/9/9/9/9/9/4K1R2 w”开始,走了g0f0 d8d9后。

movelist是单纯的坐标→坐标记录,从红方视角,从左到右所有的纵线记为a到i,从下到上所有横线(红底线到黑底线)记为0到9,至此90个点位都有一个坐标对应。g0f0指g0位置的子移动到了f0。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号