FEN(局面码)是什么?:修订间差异
无编辑摘要 |
无编辑摘要 |
||
(未显示2个用户的5个中间版本) | |||
第3行: | 第3行: | ||
<br> | <br> | ||
FEN(Forsyth-Edwards Notation)是一种记录象棋局面的方法,源自国际象棋。 | |||
只需要一串字符串就可以代表一个局面,非常方便,引擎接收局面也是靠FEN。 | |||
一串FEN至少有局面信息和轮走方信息。 | |||
== | |||
== FEN的基础记录方法如下: == | |||
1.先开始从黑方底线记录,一直到红方底线;同时每条横线从左到右记录(红方视角下)。 | 1.先开始从黑方底线记录,一直到红方底线;同时每条横线从左到右记录(红方视角下)。 | ||
2.每个字母分别代表一类子力:k帅将 a士 b象 c炮 n马 r车 | 2.每个字母分别代表一类子力:k帅将 a士 b象 c炮 n马 r车 p兵卒,'''大写字母代表红方的子,小写字母代表黑方的子'''。 | ||
3.遇到空格时,记录'''连续'''的空格数(也有每个空格单独记作1的记法) | 3.遇到空格时,记录'''连续'''的空格数(也有每个空格单独记作1的记法) | ||
第29行: | 第31行: | ||
该图的FEN就是 | 该图的FEN就是 | ||
3k1a3/4a4/5n3/9/9/9/9/9/9/4KR3 w | 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。 |
2024年8月24日 (六) 17:28的最新版本
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。