中國象棋電腦PGN文件格式
在中國,已有幾千年歷史、充滿東方智慧的象棋在中國的群眾基礎遠遠超過圍棋,一直是普及最廣的棋類項目。下面學習啦小編給你介紹中國象棋電腦PGN文件格式,歡迎閱讀。
中國象棋電腦PGN文件格式一、概述
PGN(Portable Game Notation)是棋類游戲過程的文件格式,既然國際象棋以這個規(guī)范作為記錄棋譜的標準,那么對于中國象棋來說,在還沒有一個統(tǒng)一標準的今天,PGN無疑是一個好的選擇。PGN文件有以下特點:
(1) PGN文件是文本格式的,可以用任何文本編輯軟件建立和修改;
(2) PGN文件分為“標簽部分”和“著法部分”,兩部分都規(guī)范整齊,既方便閱讀,也便于棋譜編輯軟件產生和解讀;
(3) 一個PGN文件允許包含多個棋局,形成簡易的棋譜數據庫;
(4) PGN文件的格式是公開的,現在已經被絕大多數棋譜編輯軟件所接受(僅指國際象棋,目前還沒有可以產生PGN文件的中國象棋軟件)。
中國象棋電腦PGN文件格式二、標簽部分
PGN的標簽都是由方括號“[]”表示的內容,每個標簽占一行,它們反映了棋局的一些基本情況。中國象棋的PGN記譜規(guī)范同國際象棋類似,基本標簽有:
(0) Game:游戲類型,國際象棋沒有這個標簽,中國象棋的PGN文件中這個標簽必須放在第一位,其值必須為“Chinese Chess”;
(1) Event:比賽名;
(2) Site:比賽地點;
(3) Date:比賽日期,格式統(tǒng)一為“yyyy.mm.dd”;
(4) Round:比賽輪次;
(5) Red:紅方棋手,不同與國際象棋的White;
(6) Black:黑方棋手;
(7) Result:比賽結果,“紅先勝”用“1-0”表示,“黑先勝”用“0-1”表示,和棋用“1/2-1/2”表示,未知用“*”表示。
另外還要增加具有中國象棋比賽特點的信息:
(8) RedTeam和BlackTeam:這是棋手所屬的代表隊(俱樂部、棋協、省份或國家),它們通常寫在Red和Black標簽的前面;
(9) Opening、Variation和ECCO:開局名稱、變例和ECCO編號,這些都代表開局的信息,可參考《中國象棋開局編號——說明》一文;
這里舉一個例子說明:
[Game "Chinese Chess"]
[Event "第24屆“五羊杯”全國冠軍邀請賽"]
[Site "廣州"]
[Date "2004.01.05"]
[Round "決賽(加賽)"]
[RedTeam "廣州"]
[Red "呂欽"]
[BlackTeam "廣州"]
[Black "許銀川"]
[Result "1-0"]
[Opening "中炮過河炮對左三步虎"]
[ECCO "B24"]
(10) FEN:開始局面,中局、殘局和排局等擺出來的局面,作棋譜記錄時通常要規(guī)定這個選項;
(11) Format:表示記譜方法,可以是Chinese(中文縱線格式)、WXF(WXF縱線格式)和ICCS(ICCS坐標格式),默認為Chinese。
以下信息可以作為標簽存在,也可以寫在注釋中:
(1) 棋手相關信息:紅方有RedTitle、RedElo、RedNA(這項通常會被RedTeam所取代)、RedType等,黑方寫法雷同;
(2) 賽事相關信息:EventDate、EventSponsor、Section、Stage、Board、Time等;
(3) 時限:以TimeControl為標簽的多種表示。
(4) 對局結論,以Termination為標簽的多種表示。
(5) 其他,諸如Annotator、Mode、PlyCount等,請參閱《國際象棋譯文苑》文摘——關于PGN和FEN記譜規(guī)范(上)一文。
中國象棋電腦PGN文件格式三、棋譜部分
這部分是PGN的主要內容,記錄了每一回合的著法、評注和結果。對于這部分內容的格式,有以下幾個規(guī)定:
(1) 棋譜部分必須在標簽部分的后面,棋譜部分當中不能插入標簽;
(2) 每一回合都由“回合數”、“紅方著法”和“黑方著法”三部分組成,回合數后面要跟“.”(句點),三者之間用兩個分隔符隔開(回合數后面的句點也不例外),回合之間也用分隔符隔開;
(3) 著法的表示必須和Format標簽相統(tǒng)一,如果沒有Format標簽,則用中文縱線格式來表示;
(4) 分割符只能是空格、制表符或換行符,一個著法當中不能有分割符(回合數也一樣);
(5) 評注用花括號“{}”表示,評注內可以是除花括號以外的任何字符(包括分割符),評注可以插在任何著法的后面,它和著法之間必須用分割符隔開;
(6) 整個棋局結束時必須用“1-0”(紅方勝)、“0-1”(黑方勝)、“1/2-1/2”(和棋)或“*”(未知)表示結果,結果和著法之間必須用分割符隔開;
(7) 結果以后只能有評注,不能有著法;如果出現標簽,則說明這是下一局棋。
例如,下列PGN文件的片段是允許的:
51. 兵五平六
{紅方這一步長將還不足以判負,
但是下一次就要判負了。}
將4平5
52. 兵六平五 將5平4 53. 兵五平六 0-1 {紅方長將判負}
又例如,下列PGN文件的片段是不合理的:
51.兵五平六 將4平5 // 句點后面應該加分割符
[Format "WXF"] 52. P6.5 K5.4 // 棋譜部分不能含有標簽
53. 兵五{再平六就要判負了}平四 // 評注不能把一個著法拆散
中國象棋電腦PGN文件格式四、舉例
下面是一個很經典的例子,這個例子能很好地反映中國象棋PGN格式的特點:
[Game "Chinese Chess"]
[Event "許銀川讓九子對聶棋圣"]
[Site "廣州"]
[Date "1999.12.09"]
[Red "許銀川"]
[Black "聶衛(wèi)平"]
[Result "1-0"]
[FEN "rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/9/1C5C1/9/RN2K2NR r - - 0 1"]
{ 評注:許銀川
象棋讓九子原屬茶余飯后的娛樂,不意今日卻被擺上賽桌,更為離奇的是:我的對手竟是在圍棋棋壇上叱咤風云的聶大帥。賽前我并不了解對手的實力,但相信以聶棋圣在圍棋上所體現出來的過人智慧,必能在棋理上觸類旁通。因此我在賽前也作了一些準備,在對局中更是小心翼翼,不敢掉以輕心。
許銀川讓去5只兵和雙士雙相,執(zhí)紅先行。棋盤如右圖所示。當然,PGN文件里是無法嵌入圖片的。}
1. 炮八平五 炮8平5
{ 紅方首著架中炮必走之著,聶棋圣還架中炮拼兌子力,戰(zhàn)術對頭。}
2. 炮五進五 象7進5 3. 炮二平五
{ 再架中炮也屬正著,如改走馬八進七,則象5退7,紅方帥府受攻,當然若紅方仍再架中炮拼兌,那么失去雙炮就難有作用了。}
馬8進7 4. 馬二進三 車9平8 5. 馬八進七 馬2進1 6. 車九平六 車1平2
{ 聶棋圣仍按常規(guī)戰(zhàn)法出動主力,卻忽略了紅方車塞象眼的兇著,應走車1進1。}
7. 車六進八
{ 紅車疾點象眼,局勢霎時有劍拔弩張之感。這種對弈不能以常理揣度,紅方只能像程咬金的三板斧一般猛攻一輪,若黑方防守得法則勝負立判。}
炮2進7
{ 卻說聶棋圣見我來勢洶洶,神色頓時頗為凝重,一番思索之后沉下底炮以攻為守,果是身手不凡。此著如改走炮2平3,則帥五平六,炮3進5,車六進一,將5進1,炮五退二,黑方不易駕馭局面。}
8. 車一進四 炮2平1 9. 馬七進八 炮1退4 10. 馬八退七 炮1進4 11. 馬七進八 車2進2
{ 其實黑方仍可走炮1退4,紅方若續(xù)走馬八退七,則仍炮1進4不變作和,因黑右車叫將紅可車六退九,故不算犯規(guī)。}
12. 炮五平八 炮1退4
{ 劣著,導致失子,應走車2平3,紅方如馬八進六,則車3退1,紅方無從著手。但有一點必須注意,黑車躲進暗道似與棋理相悖,故聶棋圣棄子以求局勢緩和情有可原。}
13. 炮八進五 炮1平9 14. 炮八平三 車8進2 15. 炮三進一 車8進2 16. 馬八進六 炮9平5
17. 炮三平一 士6進5 18. 馬六進四 車8平5 19. 帥五平六
{ 可直接走馬四進三叫將再踩中象。}
車5平6 20. 馬四進三 將5平6 21. 車六退四 卒5進1 22. 車六進二 炮5平7
23. 前馬退二 象5進7 24. 馬二退三 卒5進1 25. 車六平三 卒5平6 26. 車三進三 將6進1
27. 后馬進二 士5進6 28. 馬二進三 將6平5 29. 前馬進二
{ 紅方有些拖沓,應直接走車三平六立成絕殺。}
將5進1 30. 車三平六 士6退5 31. 馬二退三 車6退1 32. 車六退三
{ 再擒一車,以下著法僅是聊盡人事而已。}
車6平7 33. 車六平三 卒6平7 34. 車三平五 將5平6 35. 帥六平五 將6退1
36. 車五進二 將6退1 37. 車五進一 將6進1 38. 車五平七
{ 至此,聶棋圣認負。與此同時,另一盤圍棋對弈我被屠去一條大龍,已無力再戰(zhàn),遂平分秋色,皆大歡喜。}
1-0
中國象棋電腦PGN文件格式五、變著
變著用圓括號“()”表示,變著是以棋譜的形式對棋譜的評注,因此括號里的內容本身也是棋譜,里面還可以嵌套評注(用花括號)和變著(用圓括號)。變著針對的是括號前的著法,例如在下面一段棋譜中,變著指的是“炮2進7”改走“炮2平3”:
7. 車六進八 炮2進7 (7. ... 炮2平3 8. 帥五平六 炮3進5 9. 車六進一 將5進1 10. 炮五退二 {黑方不易駕馭局面})
中國象棋電腦PGN文件格式六、PGN與XML
如今網絡技術發(fā)展飛快,棋譜要能發(fā)布在互聯網上,需要一種容易被互聯網應用程序所識別的格式,XML無疑是一種好的選擇。由于PGN的標簽和XML的容器具有類似之處,所以PGN和XML的轉換非常方便。目前XML的棋譜規(guī)范尚未形成,但是只要照搬PGN格式的內容,就不難形成一個公認的XML格式。例如,上面一個實例轉化為XML格式的文本,就可以是以下形式:
Chinese Chess
許銀川讓九子對聶棋圣
廣州
1999.12.09
許銀川
聶衛(wèi)平
1-0
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/9/1C5C1/9/RN2K2NR r - - 0 1
炮八平五 炮8平5
1-0
看了“中國象棋電腦PGN文件格式 ”的人還看了: