昨天我们的公众号里教给大家国际通用的记谱法规则,那么,如果是棋局的某一个特定局面,该如何表示呢?今天就再告诉大家一种标准局面记谱法,这一串字符,就表示一个局面。
一、FEN记谱法介绍与结构
PGN是用来储存对局的,除此之外为了适应国际象棋其它相关要求,还有其它的数据表示标准,最重要的两个是FEN和EPD 。译文主要说说FEN的格式。
FEN就是"福斯夫-爱德华兹记号法"(Forsyth-Edwards Notation),这是一种使用ASCII码字符描述国际象棋局面的标准。FEN是建立在19世纪由报社记者S·D·福斯夫设计的记录局面的标准基础上的。后来为了适合象棋软件的需要,由爱德华兹对此做了少许修改。 一份标准的局面记号对需要大量交换共享局面数据的国际象棋程序设计等工作具有尤其重要的作用。【译注:实际上,对于一般学棋拆棋,哪怕是娱乐,也很有用,后文将简单举例说明】
一个FEN记录使用长度可不同的一行来表示,由六个区域组成。单纯的FEN记录文件后缀应该是".fen",比如:kk-1.fen。
FEN描述了:棋子位置、轮走棋方、易位可行性、吃过路兵目标格、半步计数、以及总回合数。所有这一切用一行文字符号表示就行了而且非常容易读。
看看一个FEN的六个区域及其含义,先举一个谁都太熟悉了的局面的FEN文件:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNRw KQkq- 0 1
这就是每盘常规对局的最初局面,一个子都没有动。
译文以不同颜色表示了这个FEN中的六个不同区域,它们是:
1) 棋子位置数值区域(Piece placement data) 红色那段就是表示双方棋子各在棋盘哪个格子上的。规则是从第8横线开始顺次数到第1横线(白方在下,从上数到下),从a线开始顺次数到h线;白方棋子以大写字母"PNBRQK"表示,黑方棋子以小写"pnbrqk"表示,这是英文表示法,每个字母代表的意义与常规规定相同。数字代表一个横线上的连续空格,反斜杠"/" 表示结束一个横线的描述。上面的那pppppppp,就是表示黑方在第7横线上排有8只兵;后面那4个数字8,就是表示从第6到第3横线,双方一个棋子都不在,是空格;7个反斜杠"/"将第一区域分成8段,因为棋盘有8条横线;其它的照着图完全可以类推。
2) 轮走棋方(Active color) 深绿色那段表示目前局面该谁走棋。小写"w"表示白方走棋;小写"b"表示黑方走棋; 显然起初局面肯定是白先,所以上面就是"w" 。
3) 易位可行性(Castling availability) 紫色那段这表示在当前局面下每一方有没有潜在的各种王车易位的可行性(目前不一定行,但以后有可能行)。如果谁都没有,就用"-"表示;大写"K"表示白方有短易位的可行性,大写"Q"示白方有长易位的可行性;对应的小写"k"和"q"代表黑方短和长易位的可行性。书写顺序必须是先大写后小写、先短易位后长易位,并且之间不能有空格。
4) 吃过路兵目标格(En passant target square) 紫红色那段如果没有,就用"-"表示。如果有,就用具体完成吃过路兵的那个格子坐标来表示,显然对于白兵被吃只可能在第3横线,对于黑兵被吃只可能在第6横线。而且,这个标记是且只是在该局面紧接的上一步棋是某方刚走兵推进两格的情况下出现。
5) 半回合计数(Halfmove clock) 浅蓝色那段用一个非负数表示自从上一次动兵或吃子之后目前走了的半回合数。这个是为了适应50步和棋规则而定。【译注:但是在winboard的FEN输出中,这个值好象总是0】
6) 回合数(Fullmove number) 棕色那段当前要进行到的回合数。不管白还是黑,第一步时总是以1表示,以后黑方每走一步数字就加1。
二、FEN记谱法举例说明
好了,举例说明:
假如从开局开始,走了1. e4 e5 2. Nf3 Nc6 3. Bc4 Nf6 4. Ng5 d5 5. exd5 Nxd5 6. Nxf7 Kxf7 7. Qf3+ Qf6 8. Bxd5+ Be6 9. Bxc6 bxc6 10. Qxc6 Bd6 11. Nc3 Rhd8
这个写成FEN就是
r2r4/p1p2kpp/2Qbbq2/4p3/8/2N5/PPPP1PPP/R1B1K2R w KQ - 0 12
见图:
1) 第一区域
第8横线r2r4,全是黑子(小写),从左到右依次是:黑车r、2个连续空格、黑车r、然后4个连续空格,这横线8个格子都说明了;
第1横线R1B1K2R,全是白子(大写),从左到右依次是:白车R、1个空格、白象B、1个空格、白王K、两个空格、白车R,刚好8个格子;
其它类推,要说明的是第6横线和第4横线:
第6横线就是2Qbbq2,从左到右依次是:2个空格、白后Q(注意这是大写!)、黑象b、黑象b、黑后q、2个空格,刚好8个;
第4横线,空空如也,所以就是用“8”表示,表示8个连续空格。
2) 第二区域
因为这时轮到白方走棋,所以就是“w”。
3) 第三区域
黑方的王已经动过所以失去易位可行性;白方的王则可以,以“KQ”表示。
4) 第四区域
上一着没有兵推进两格,所以不存在吃过路兵目标格,用“-”表示。
5) 第五区域
WinBoard总是输出“0” ……不过这个标记作用有限。
6) 第六区域
黑方已走完第11回合,所以现在是第12回合。
因此,上面那一串字符就代表了一个局面,你学会了吗,你可以通过国际象棋软件得到任意一个局面的FEN代码,当然,也可以把一串正确的FEN代码输入国际象棋软件得到一个局面,然后进行分析或继续走棋。