國際象棋-關于PGN和FEN記譜規(guī)范(下)

PGN是用來儲存對局的,除此之外為了適應國際象棋其它相關要求,還有其它的數(shù)據(jù)表示標準,最重要的兩個是FEN和EPD 。這里主要說說FEN的格式。

FEN

FEN就是“福斯夫-愛德華茲記號法”(Forsyth-Edwards Notation),這是一種使用ASCII碼字符描述國際象棋局面的標準。FEN是建立在19世紀由報社記者S·D·福斯夫設計的記錄局面的標準基礎上的。后來為了適合象棋軟件的需要,由愛德華茲對此做了少許修改。一份標準的局面記號對需要大量交換共享局面數(shù)據(jù)的國際象棋程序設計等工作具有尤其重要的作用。

結構描述

一個FEN記錄使用長度可不同的一行來表示,由六個區(qū)域組成。單純的FEN記錄文件后綴應該是“.fen”,比如:kk-1.fen。
  FEN描述了:棋子位置、輪走棋方、易位可行性、吃過路兵目標格、半步計數(shù)、以及總回合數(shù)。所有這一切用一行文字符號表示就行了而且非常容易讀。
  看看一個FEN的六個區(qū)域及其含義,先舉一個誰都太熟悉了的局面的FEN文件:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
  這就是每盤常規(guī)對局的最初局面,一個子都沒有動。
  譯文以不同顏色表示了這個FEN中的六個不同區(qū)域,它們是:

  1. 棋子位置數(shù)值區(qū)域(Piece placement data) 【rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR】
      就是表示雙方棋子各在棋盤哪個格子上的。規(guī)則是從第8橫線開始順次數(shù)到第1橫線(白方在下,從上數(shù)到下),從a線開始順次數(shù)到h線;白方棋子以大寫字母“PNBRQK”表示,黑方棋子以小寫“pnbrqk”表示,這是英文表示法,每個字母代表的意義與常規(guī)規(guī)定相同。數(shù)字代表一個橫線上的連續(xù)空格,反斜杠“/” 表示結束一個橫線的描述。
      上面的那pppppppp,就是表示黑方在第7橫線上排有8只兵;后面那4個數(shù)字8,就是表示從第6到第3橫線,雙方一個棋子都不在,是空格;7個反斜杠“/”將第一區(qū)域分成8段,因為棋盤有8條橫線;其它的照著圖完全可以類推。
  2. 輪走棋方(Active color) 【w】
      表示目前局面該誰走棋。小寫“w”表示白方走棋;小寫“b”表示黑方走棋; 顯然起初局面肯定是白先,所以上面就是“w” 。
  3. 易位可行性(Castling availability) 【KQkq】
      這表示在當前局面下每一方有沒有潛在的各種王車易位的可行性(目前不一定行,但以后有可能行)。如果誰都沒有,就用“-”表示;大寫“K”表示白方有短易位的可行性,大寫“Q”表示白方有長易位的可行性;對應的小寫“k”和“q”代表黑方短和長易位的可行性。書寫順序必須是先大寫后小寫、先短易位后長易位,并且之間不能有空格。
  4. 吃過路兵目標格(En passant target square) 【-】
      如果沒有,就用“-”表示。如果有,就用具體完成吃過路兵的那個格子坐標來表示,顯然對于白兵被吃只可能在第3橫線,對于黑兵被吃只可能在第6橫線。而且,這個標記是且只是在該局面緊接的上一步棋是某方剛走兵推進兩格的情況下出現(xiàn)。
  5. 半回合計數(shù)(Halfmove clock) 【0】
      用一個非負數(shù)表示自從上一次動兵或吃子之后目前走了的半回合數(shù)。這個是為了適應50步和棋規(guī)則而定?!咀g注:但是在winboard的FEN輸出中,這個值好象總是0】
  6. 回合數(shù)(Fullmove number) 【1】
      當前要進行到的回合數(shù)。不管白還是黑,第一步時總是以1表示,以后黑方每走一步數(shù)字就加1。

舉例

假如從開局開始,走了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


image.png
  1. 第一區(qū)域
      第8橫線r2r4,全是黑子(小寫),從左到右依次是:黑車r、2個連續(xù)空格、黑車r、然后4個連續(xù)空格,這橫線8個格子都說明了;
      第1橫線R1B1K2R,全是白子(大寫),從左到右依次是:白車R、1個空格、白象B、1個空格、白王K、兩個空格、白車R,剛好8個格子;
      其它類推,要說明的是第6橫線和第4橫線
      第6橫線就是2Qbbq2,從左到右依次是:2個空格、白后Q(注意這是大寫!)、黑象b、黑象b、黑后q、2個空格,剛好8個;第4橫線,空空如也,所以就是用“8”表示,表示8個連續(xù)空格。
  2. 第二區(qū)域
      因為這時輪到白方走棋,所以就是“w”。
  3. 第三區(qū)域
      黑方的王已經(jīng)動過所以失去易位可行性;白方的王則可以,以“KQ”表示。
  4. 第四區(qū)域
      上一著沒有兵推進兩格,所以不存在吃過路兵目標格,用“-”表示。
  5. 第五區(qū)域
      WinBoard總是輸出“0” ……不過這個標記作用有限。
  6. 第六區(qū)域
      黑方已走完第11回合,所以現(xiàn)在是第12回合。

使用打譜軟件比如winboard或chessbase,無論輸入還是輸出FEN記錄和文件都是自動式的,很方便,了解它的規(guī)則只是為了深入一些應用或遇到問題時自己可以解決。另外,在網(wǎng)上之間傳遞棋局,不用把棋圖畫在紙上或用文字笨拙地描述了,不用說“王在e1, 后在XX,……”等等。寫成FEN格式,或者干脆使用winboard等直接輸出FEN文件,然后發(fā)過去甚至讓對方直接“粘貼-復制-再粘貼”,幾秒鐘對方就可以完全重現(xiàn)該局面

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容