国际象棋译文苑》文摘
 
关于PGNFEN记谱规范(下)
 
来源:rec.games.chess新闻组
 
  PGN是用来储存对局的,除此之外为了适应国际象棋其它相关要求,还有其它的数据表示标准,最重要的两个是FENEPD 。译文主要说说FEN的格式。
 
1FEN
 
  FEN就是“福斯夫-爱德华兹记号法”(Forsyth-Edwards Notation),这是一种使用ASCII码字符描述国际象棋局面的标准。FEN是建立在19世纪由报社记者S·D·福斯夫设计的记录局面的标准基础上的。后来为了适合象棋软件的需要,由爱德华兹对此做了少许修改。
  一份标准的局面记号对需要大量交换共享局面数据的国际象棋程序设计等工作具有尤其重要的作用。【译注:实际上,对于一般学棋拆棋,哪怕是娱乐,也很有用,后文将简单举例说明】
 
1-1 结构描述
  一个FEN记录使用长度可不同的一行来表示,由六个区域组成。单纯的FEN记录文件后缀应该是“.fen”,比如:kk-1.fen
  FEN描述了:棋子位置、轮走棋方、易位可行性、吃过路兵目标格、半步计数、以及总回合数。所有这一切用一行文字符号表示就行了而且非常容易读。
  看看一个FEN的六个区域及其含义,先举一个谁都太熟悉了的局面的FEN文件:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w 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步和棋规则而定。【译注:但是在winboardFEN输出中,这个值好象总是0
 
6) 回合数(Fullmove number) 棕色那段
  当前要进行到的回合数。不管白还是黑,第一步时总是以1表示,以后黑方每走一步数字就加1
 
1-2 举例
  好了,举例说明:
  假如从开局开始,走了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,全是黑子(小写),从左到右依次是:黑车r2个连续空格、黑车r、然后4个连续空格,这横线8个格子都说明了;
  第1横线R1B1K2R,全是白子(大写),从左到右依次是:白车R1个空格、白象B1个空格、白王K、两个空格、白车R,刚好8个格子;
  其它类推,要说明的是第6横线和第4横线
  第6横线就是2Qbbq2,从左到右依次是:2个空格、白后Q(注意这是大写!)、黑象b、黑象b、黑后q2个空格,刚好8个;第4横线,空空如也,所以就是用“8”表示,表示8个连续空格。
2) 第二区域
  因为这时轮到白方走棋,所以就是“w”。
3) 第三区域
  黑方的王已经动过所以失去易位可行性;白方的王则可以,以“KQ”表示。
4) 第四区域
  上一着没有兵推进两格,所以不存在吃过路兵目标格,用“-”表示。
5) 第五区域
  WinBoard总是输出“0” ……不过这个标记作用有限。
6) 第六区域
  黑方已走完第11回合,所以现在是第12回合。
 
1-3 其它
  其实,使用打谱软件比如winboardchessbase,无论输入还是输出FEN记录和文件都是自动式的,很方便,了解它的规则只是为了深入一些应用或遇到问题时自己可以解决。另外,在网上之间传递棋局,不用把棋图画在纸上或用文字笨拙地描述了,不用说“王在e1, 后在XX,……”等等。写成FEN格式,或者干脆使用winboard等直接输出FEN文件,然后发过去甚至让对方直接“粘贴-复制-再粘贴”,几秒钟对方就可以完全重现该局面。
 
  出处:Chess world PGN Archive
  译者:michael
  类型:编译
  • 上一篇 关于PGNFEN记谱规范()(转载自《国际象棋译文苑》)
  • 下一篇 国际象棋引擎:穿越困惑(转载自《国际象棋译文苑》)
  • 返 回 象棋百科全书——规则与协议
  • www.xqbase.com