福斯夫-爱德华兹记号法:修订间差异
imported>Soleverlee 以“福斯夫-爱德华兹记号法(Forsyth–Edwards Notation),简称FEN,是苏格兰人David Forsyth发明的国际象棋可完整叙述局面的记谱法,...”为内容创建页面 |
imported>Soleverlee |
||
第26行: | 第26行: | ||
*回合数(Fullmove number):以阿拉伯数字表示,从开局开始计算的回合数。 | *回合数(Fullmove number):以阿拉伯数字表示,从开局开始计算的回合数。 | ||
这里要注意两点: | |||
#中国象棋棋盘有10行,所以要用9个“/”把每一行隔开 | |||
#是棋子名称用英文字母表示,国际象棋中没有的棋子是仕(士)和炮,这里分别用字母A(a)和C(c)表示。 | |||
=与二维数组的转换= | |||
[[Category:Game]] | [[Category:Game]] |
2015年4月27日 (一) 02:21的最新版本
福斯夫-爱德华兹记号法(Forsyth–Edwards Notation),简称FEN,是苏格兰人David Forsyth发明的国际象棋可完整叙述局面的记谱法,也可用于中国象棋。例如:
rnbqkbnr/ppp2ppp/4p3/3pP3/8/8/PPPP1PPP/RNBQKBNR b KQkq d5 0 2
记谱规则
使用ASCII字符串代码,代码意义依次是:
- 棋子位置数值区域(Piece placement data):
- 按白方视角,描述由上至下、由左至右的盘面,以/符号来分隔相邻横列。白方、黑方分别以大写、小写英文字母表达兵种:P、N、B、R、Q、K分别代表士兵、骑士、主教、城堡、皇后、国王。各横列的连续空格以阿拉伯数字表示,例如5即代表连续5个空格。
- 轮走棋方(Active color):以w表示白方;b表示黑方。
- 吃过路兵目标格(En passant target square):写走棋方若吃过路兵后会到的棋格,若无则写-。
- 易位可行性(Castling availability):写KQ表示白方可易位;kq表示黑方可易位;KQkq表示两方均可易位。
- 半回合计数(Halfmove clock):以阿拉伯数字表示,从最后一次吃子或移动兵开始计算的回合数,用于判断五十回合自然限著和局。
- 回合数(Fullmove number):以阿拉伯数字表示,从开局开始计算的回合数。
用于中国象棋
福斯夫-爱德华兹记号法用于记录中国象棋时,与记录国际象棋相似但稍有不同。记法如下:。
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR w - - 0 1
由ASCII字符串代码,代码意义依次是:
- 棋子位置数值区域(Piece placement data)
- 由红方为观点。红方以大写字元来表达兵种:PABNCRK分别代表兵、仕、相、马、炮、车、帅;黑方以小写字元表达:pabncrk分别代表卒、士、象、马、炮、车、将。各横列的连续空位以阿拉伯数字表示,例如5即代表连续的5个空位。
- 轮走棋方(Active color):w表示红方(也有用r表示红方);b表示黑方。
- 吃过路兵目标格(En passant target square):中国象棋中无“吃过路兵”规则,因此此项写-。
- 易位可行性(Castling availability):中国象棋中无易位规则,因此此项写-。
- 半回合计数(Halfmove clock):从最后一次吃子开始计算的回合数,用于判断六十回合自然限著和局。
- 回合数(Fullmove number):以阿拉伯数字表示,从开局开始计算的回合数。
这里要注意两点:
- 中国象棋棋盘有10行,所以要用9个“/”把每一行隔开
- 是棋子名称用英文字母表示,国际象棋中没有的棋子是仕(士)和炮,这里分别用字母A(a)和C(c)表示。