| 棋谱收藏站 |  | 网站首页 | 中国象棋谱 | 围棋棋谱 | 五子棋谱 | 国际象棋谱 | 下载中心 | 扑克麻将 | 
婵炴垶鎸搁鍫澝归敓锟�/濠电偞鎸搁幉锟犲垂閿燂拷 濠碘槅鍋勯鍫濐潩閿燂拷/闂佸搫鍊稿ú銊╂偟閿燂拷
濞戞搩鍘煎ù妤冩寬閳╁喚妫� >> 閻犙勭◥缁ㄣ劎鎷敓锟� 閻㈩垰鍟惇顒傛嫬閿燂拷 闁告柣鍔嶉埀顑挎祰濮橈拷闁崇櫢鎷�闁告瑣鍊涘銊モ枔鐎n亞婀� 闁告瑣鍊涘銊╁礂閵娿儳婀�闁崇櫢鎷�鐎殿喒鍋撻悘鐐╁亾閻犲鎷� 濞戞搩鍘奸惇顒傛嫬閿燂拷 婵炲牆顑呴惇顒傛嫬閿燂拷 闁哄鍋撻柣顐熷亾閻犲鎷�闁崇櫢鎷�濞戞挻鎹侀幉锟� 婵☆偄顑嗘晶锟� 閻熸瑥妫濋。锟� 闁轰焦鐟ч埢锟� 闁规亽鍔忓畷锟� 闁崇櫢鎷� 濞存粍鏌ㄩ悺娆徫涢敓锟�闁崇櫢鎷�闁搞儰绮欏顖滄寬閳╁喚妫�闁崇櫢鎷�闁搞儱鐡ㄩˉ锟�
象棋资料 >>  中象概述  象棋故事  象棋人物  棋手档案  软件教程  象棋教程  资源推荐
楠炲灝鎲�楠炲灝鎲�
位置: 棋谱收藏站 >> 中国象棋谱 >> 象棋资料 >> 中象概述 >> 正文
中国象棋电脑应用规范(二) FEN文件格式
更新时间:2012-12-4   浏览次数:   
一、FEN的优势
 
  FEN(Forsyth-Edwards Notation)是专门用来表示象棋局面的记录规范,在这个规范下,一个局面可以简单地用一行“FEN格式串”来表示,而不必烦琐地说:“红帅在四路次底线,黑将在5路底线……”。由于它是文本格式的(只牵涉到很有限的几个字母、数字和符号),因此网上传递棋局就非常方便,不用把棋图画在纸上或用文字笨拙地描述了,而是用棋谱编辑软件摆好局面,自动得到FEN格式串,再贴到诸如Web网页、BBS、电子论坛等能够传递文字的网络应用平台上。读者面对FEN格式传,只要借助于棋谱编辑软件,用“赋值”和“粘贴”就可以完全重现局面,使得棋谱交流快速而高效。
 
二、FEN格式串
 
  国际象棋的FEN格式串是由6ASCII字符串组成的代码(彼此5个空格隔开),这6段代码的意义依次是:
  (1) 棋盘上的棋子,这是FEN格式串的主要部分;
  (2) 轮到哪一方走子;
  (3) 每方及该方的王翼和后翼是否还存在“王车易位”的可能;
  (4) 是否存在吃过路兵的可能,过路兵是经过哪个格子的;
  (5) 最近一次吃子或者进兵后棋局进行的步数(半回合数),用来判断“50回合自然限着”;
  (6) 棋局的回合数。
  中国象棋没有“王车易位”和“吃过路兵”的着法,所以FEN格式串的这两项空缺,以最初局面为例说明:
 
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR w - - 0 1
 
  (1) 红色区域,表示棋盘布局,小写表示黑方,大写表示红方,其他规则同国际象棋的FEN规范(请参阅《国际象棋译文苑》文摘——关于PGNFEN记谱规范()一文)。这里要注意两点,一是中国象棋棋盘有10行,所以要用9个“/”把每一行隔开;二是棋子名称用英文字母表示,国际象棋中没有的棋子是仕()和炮,这里分别用字母A(a)C(c)表示。
  (2) 绿色区域,表示轮到哪一方走子,“w”表示红方,“b”表示黑方。(有人认为红方应该用“r”表示,很多象棋软件确实是这样表示的。ElephantBoard尽管用“w”表示,但识别时采取灵活的办法,即“b”表示黑方,除此以外都表示红方。)
  (3) 深紫色区域,空缺,始终用“-”表示。
  (4) 紫红色区域,空缺,始终用“-”表示。
  (5) 蓝色区域,表示双方没有吃子的走棋步数(半回合数),通常该值达到120就要判和(六十回合自然限着),一旦形成局面的上一步是吃子,这里就标记“0”。(这个参数对于普通局面的意义不大,ElephantBoard的规则处理器并不是根据这一项来判断和棋的,所以总是计为“0”。)
  (6) 棕色区域,表示当前的回合数,在研究中局或排局时,作为研究对象的局面,这一项可以写1,随着局势的发展逐渐增加。
 
三、FEN文件
 
  FEN格式串有很多载体,通常的做法是把它保存成后缀为“.FEN”的文件。FEN文件是ASCII码文件,可以用任何文本编辑软件来建立和修改,也可以通过象棋棋谱软件来产生。
 
四、历史局面的表示
 
  这是只在“中国象棋通用引擎协议(UCCI协议)中采用的方法,用来表示历史局面。在UCCI协议中,局面用position fen <fen_string>来传递,由于FEN格式串无法记录历史局面,所以该指令后面必须用moves选项来说明。例如右图局面,发生时,界面向引擎传递局面信息:
position fen 9/9/3k5/9/9/9/4R4/3A5/8r/4K4 b - - 0 1
  此时引擎走车9进1是没有问题的。然而当它是某个长将局面的延续时,界面向引擎传递的局面信息就必须用moves选项来说明:
position fen 9/9/3k5/9/9/9/4R4/3A5/4K4/8r b - - 0 1 moves i0i1 e1e0 i1i0 e0e1 i0i1 e1e0 i1i0 e0e1 i0i1 e1e0
  尽管也是右图的局面,但意义已经发生了变化,此时引擎不可能再走车9进1,因为紧接着一步帅五进一,导致局面重复第三次,黑方被判长将作负。

  ElephantBoard向引擎传递局面时,<fen_string>总是最近一次吃过子的局面(或开始局面),后面所有的着法都用moves选项来传递给引擎,这样就包含了判断自然限着和长打的历史信息,这些信息可由引擎来处理。

  • 上局棋谱:

  • 下局棋谱:
  •  相关棋谱:  相关下载:
    ·中国象棋电脑应用规范(四) 中国象棋通用引擎
    ·中国象棋电脑应用规范(三) PGN文件格式
    ·中国象棋电脑应用规范(一) 着法表示
     
    最 新 棋 谱
    最 新 热 门
     湖北 汪洋 胜 北京 唐丹
     残局130-113
     连杀小局031
     连杀小局010
     江苏句容茅山 徐超 胜 四川双流
     星期五够狠(9星)-负-今生(无极
     奕天名字(9星)-胜-斧头冷血(9星
     广东碧桂园 吕钦 胜 江苏句容茅
     云南 葛维蒲 和 林业 刘浩和
     广东 庄玉庭 胜 邮电 袁洪梁