中国象棋电子棋谱PGN格式研究 | 您所在的位置:网站首页 › 象棋棋谱读法 › 中国象棋电子棋谱PGN格式研究 |
正文 PGN(Portable Game Notation)是棋类游戏过程的文件格式,既然国际象棋以这个规范作为记录棋谱的标准,那么对于中国象棋来说,在还没有一个统一标准的今天,PGN无疑是一个好的选择。PGN文件有以下特点: (1) PGN文件是文本格式的,可以用任何文本编辑软件建立和修改; (2) PGN文件分为“标签部分”和“着法部分”,两部分都规范整齐,既方便阅读,也便于棋谱编辑软件产生和解读; (3) 一个PGN文件允许包含多个棋局,形成简易的棋谱数据库;(很少有这么做的,多半是建成CBL格式) (4) PGN文件的格式是公开的,现在已经被绝大多数棋谱编辑软件所接受(仅指国际象棋,目前还没有可以产生PGN文件的中国象棋软件(这句话已经失效,大部分打谱软件都可以做pgn格式))。 一个正常的PGN格式如下(注释用 ’ 表示,不标注必须存在可以舍弃) [Game "Chinese Chess"] ’ 必须存在,缺省值Chinese Chess [Event "赛事"] ’ 文本内对应汉字为对应定义,如有下同 [Site "地点"] [Date "时间格式如yyyy.mm.dd"] ’ 这里只接受yyyy.mm.dd [Time "hh:mm:ss"] ’ 这里只接受hh:mm:ss。 [Round "轮次"] [Red "红方"] ’ 红方名字 [Black "黑方"] ’ 黑方名字 [Result "*"] ’ 此部分详见开局注释,必须存在 [Title "标题"] [TimeControl "计时"] [RedElo "红方积分"] [BlackElo "黑方积分"] [RedTeam "红方团队"] [BlackTeam "黑方团队"] [Annotator "解说者,如蔴球电子"] [Creator "创建者,如蔴球电子"] {注释例子,result中*表示未知结果,1/2-1/2表示和棋,1-0表示红方赢,0-1表示黑方赢。} ’ 开局注释 1. 炮八平五 {红方第一步} 马8进7 {黑方第一步} ......(略) 其他格式如Opening、Variation和ECCO:开局名称、变例和ECCO编号,这些都代表开局的信息,FEN表示开始局面,中局、残局和排局等摆出来的局面,作棋谱记录时通常要规定这个选项,Format:表示记谱方法,可以是Chinese(中文纵线格式)、WXF(WXF纵线格式)和ICCS(ICCS坐标格式),默认为Chinese。其他如EventDate、EventSponsor、Section、Stage、Board、Time等; 时限以TimeControl为标签的多种表示,对局结论,以Termination为标签的多种表示。其他,诸如Annotator、Mode、PlyCount等,请参阅《国际象棋译文苑》文摘——关于PGN和FEN记谱规范(上)一文。(这段话中很多格式并非必须存在的,由于原文章过于古老,很多已经弃用) 棋谱规范(有改动) 这部分是PGN的主要内容,记录了每一回合的着法、评注和结果。对于这部分内容的格式,有以下几个规定: (1) 棋谱部分必须在标签部分的后面,棋谱部分当中不能插入标签; (2) 每一回合都由“回合数”、“红方着法”和“黑方着法”三部分组成,回合数后面要跟“.”(句点),三者之间用两个分隔符隔开(回合数后面的句点也不例外),回合之间也用分隔符隔开; (4) 分割符只能是空格、制表符或换行符,一个着法当中不能有分割符(回合数也一样); (5) 评注用花括号“{}”表示,评注内可以是除花括号以外的任何字符(包括分割符),评注可以插在任何着法的后面,它和着法之间必须用分割符隔开; (7) 结果以后只能有评注,不能有着法;如果出现标签,则说明这是下一局棋。 8.红方统一用汉字表示数字,黑方统一用全角数字表示数字。(半角数字只是为了方便举例错误写法) 例如,下列PGN文件的片段是允许的: 51. 兵五平六 {红方这一步长将还不足以判负, 但是下一次就要判负了。} 将4平5 52. 兵六平五 将5平4 53. 兵五平六 0-1 {红方长将判负} 又例如,下列PGN文件的片段是不合理的: 51. 兵五平六 将4平5 // 句点后面应该加空格 53. 兵五{再平六就要判负了}平四 // 评注不能把一个着法拆散。 变着用圆括号“()”表示,变着是以棋谱的形式对棋谱的评注,因此括号里的内容本身也是棋谱,里面还可以嵌套评注(用花括号)和变着(用圆括号)。变着针对的是括号前的着法,例如在下面一段棋谱中,变着指的是“炮2进7”改走“炮2平3”: 7. 车六进八 炮2进7 (7. ... 炮2平3 8. 帅五平六 炮3进5 9. 车六进一 将5进1 10. 炮五退二 {黑方不易驾驭局面}) 1. 炮八平五 {红方第一步} 马8进7 {黑方第一步} (1. ... 炮8平5 2. 马八进七 马8进7 3. 车九平八 车9进8 {测试例子}) 本人的文章参考了以下网站,谢谢! https://www.xqbase.com/protocol/cchess_pgn.htm (2004年11月初稿,2006年2月修订,由于某些说明过老,个人注释用中文括号表示) |
CopyRight 2018-2019 实验室设备网 版权所有 |