中国象棋计算机运用类型(四)
 
PGN文件花样
 
象棋百科全书网 (webmaster@xqbase.com)
200411月初稿,20062月修订
 
一、概述
 
  PGN(Portable Game Notation)是棋类游戏历程的文件花样,如果国际象棋以这个类型作为纪录棋谱的规范,那末关于中国象棋来说,在还没有一个一致规范的明天,PGN无疑是一个好的选择。PGN文件有以下特性:
  (1) PGN文件是文本花样的,能够用任何文本编纂软件竖立和修正;
  (2) PGN文件分为“标签局部”和“着法局部”,两局部都类型整齐,既轻易阅读,也便于棋谱编纂软件发生和剖析;
  (3) 一个PGN文件允许包罗多个棋局,组成浅易的棋谱数据库;
  (4) PGN文件的花样是公然的,现在以前被绝大少数棋谱编纂软件所收受接管(仅指国际象棋,现在还没有能够发生PGN文件的中国象棋软件)
 
二、标签局部
 
  PGN的标签都是由方括号“[]”透露表现的内容,每一个标签占一行,它们回响反映了棋局的一些基本状况。中国象棋的PGN记谱类型同国际象棋相似,基本标签有:
  (0) Game:游戏类型,国际象棋没有这个标签,中国象棋的PGN文件中这个标签必需放在第一位,其值必需为“Chinese Chess”;
  (1) Event:竞赛名;
  (2) Site:竞赛所在;
  (3) Date:竞赛日期,花样一致为“yyyy.mm.dd”;
  (4) Round:竞赛轮次;
  (5) Red:红方棋手,分歧与国际象棋的White
  (6) Black:黑方棋手;
  (7) Result:竞赛效果,“红先胜”用“1-0”透露表现,“黑先胜”用“0-1”透露表现,和棋用“1/2-1/2”透露表现,未知用“*”透露表现。
 
  其余还要增长具有中国象棋竞赛特性的信息:
  (8) RedTeamBlackTeam:这是棋手所属的象征队(俱乐部、棋协、省份或国家),它们一般写在RedBlack标签的前面;
  (9) OpeningVariationECCO:残局称呼、变例和ECCO编号,这些都象征残局的信息,可参考《中国象棋残局编号——说明》一文;
  这里举一个案例说明:
 
[Game "Chinese Chess"]
[Event "第24届“五羊杯”天下冠军约请赛"]
[Site "广州"]
[Date "2004.01.05"]
[Round "决赛(加赛)"]
[RedTeam "广州"]
[Red "吕钦"]
[BlackTeam "广州"]
[Black "许银川"]
[Result "1-0"]
[Opening "中炮过河炮对左三步虎"]
[ECCO "B24"]
 
  (10) FEN:最先局势,中局、残局和排局等摆出来的局势,作棋谱纪录时一般要划定这个选项;
  (11) Format:透露表现记谱要领,能够是Chinese(中文纵线花样)WXF(WXF纵线花样)ICCS(ICCS坐标花样),默以为Chinese
 
  以下信息能够作为标签存在,也能够写在注释中:
  (1) 棋手相关信息:红方有RedTitleRedEloRedNA(这项一般会被RedTeam所庖代)RedType等,黑方写法相同;
  (2) 赛事相关信息:EventDateEventSponsorSectionStageBoardTime等;
  (3) 时限:以TimeControl为标签的多种透露表现。
  (4) 对局结论,以Termination为标签的多种透露表现。
  (5) 其他,诸如AnnotatorModePlyCount等,请参阅《国际象棋译文苑》文摘——关于PGNFEN记谱类型()一文。
 
三、棋谱局部
 
  这局部是PGN的主要内容,纪录了每一回合的着法、评注和效果。关于这局部内容的花样,有以下几个划定:
  (1) 棋谱局部必需在标签局部的前面,棋谱局部当中不能拔出标签;
  (2) 每一回合都由“回合数”、“红方着法”和“黑方着法”三局部组成,回合数前面要跟“.(句点),三者之间用两个隔开符离隔(回合数前面的句点也不破例),回合之间也用隔开符离隔;
  (3) 着法的透露表现必需和Format标签相一致,若是没有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花样的特性:
[Game "Chinese Chess"]
[Event "许银川让九子对聂棋圣"]
[Site "广州"]
[Date "1999.12.09"]
[Red "许银川"]
[Black "聂卫平"]
[Result "1-0"]
[FEN "rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/9/1C5C1/9/RN2K2NR r - - 0 1"]
{  评注:许银川
  象棋让九子原属茶余饭后的文娱,没想到昔日却被摆上赛桌,越发新奇的是:我的对手竟是在围棋棋坛上气吞山河的聂大帅。赛前我其实不相识对手的实力,但置信以聂棋圣在围棋上所显示出来的过人智慧,必能在棋理上举一反三。因而我在赛前也作了一些准备,在对局中更是战战兢兢,不敢漫不经心。
  许银川让去5只兵和双士双相,执红先行。棋盘如右图所示。固然,PGN文件里是没有设施嵌入图画的。}
1. 炮八平五 炮8平5
{  红方首着架中炮必走之着,聂棋圣还架中炮拼兑子力,战术对头。}
2. 炮五进五 象7进5 3. 炮二平五
{  再架中炮也属正着,如改走马八进七,则象5退7,红方帅府受攻,固然若红方仍再架中炮拼兑,那末失双炮就难有用用了。}
马8进7 4. 马二进三 车9平8 5. 马八进七 马2进1 6. 车九平六 车1平2
{  聂棋圣仍按通例战法出动主力,却疏忽了红方车塞象眼的凶着,应走车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,红方若续走马八退七,则仍炮1进4稳定作和,因黑右车叫将红可车六退九,故不算犯规。}
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. 车五平七
{  至此,聂棋圣认负。与此同时,其余一盘围棋棋战我被屠去一条大龙,已有力再战,遂中分秋色,民怨沸腾。}
1-0
 
五、变着
 
  变着用圆括号“()”透露表现,变着是以棋谱的形式对棋谱的评注,因而括号里的内容自身也是棋谱,外面还能够嵌套评注(用花括号)和变着(用圆括号)。变着重点一定的是括号前的着法,譬喻不才面一段棋谱中,变着指的是“炮2进7”改走“炮2平3”:
 
7. 车六进八 炮2进7 (7. ... 炮2平3 8. 帅五平六 炮3进5 9. 车六进一 将5进1 10. 炮五退二 {黑方不容易驾御局势})
 
六、PGNXML
 
  现在网络手艺生长迅速,棋谱要能公布在互联网上,要求一种随意纰漏被互联网运用顺序所识别的花样,XML无疑是一种好的选择。由于PGN的标签和XML的容用具有相似的中央,以是PGNXML的调换异常轻易。现在XML的棋谱类型还没有组成,然则只需照搬PGN花样的内容,就很容易组成一个公认的XML花样。譬喻,下面一个实例改动为XML花样的文本,就能够够是以下形式:
 
<pgn>
 <game> Chinese Chess </game>
 <event> 许银川让九子对聂棋圣 </event>
 <site> 广州 </site>
 <date> 1999.12.09 </date>
 <red> 许银川 </red>
 <black> 聂卫平 </black>
 <result> 1-0 </result>
 <fen> rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/9/1C5C1/9/RN2K2NR r - - 0 1 </fen>
 <comment>   评注:许银川
  象棋让九子原属茶余饭后的文娱,没想到昔日却被摆上赛桌,越发新奇的是:我的对手竟是在围棋棋坛上气吞山河的聂大帅。赛前我其实不相识对手的实力,但置信以聂棋圣在围棋上所显示出来的过人智慧,必能在棋理上举一反三。因而我在赛前也作了一些准备,在对局中更是战战兢兢,不敢漫不经心。
  许银川让去5只兵和双士双相,执红先行。在XML中,图画能够用超链接的形式嵌入,譬喻:<img src="/html/protocol/cchess_pgn.gif">。 </comment>
 <move> 炮八平五 </move> <move> 炮8平5 </move>
 <comment> 以后省略…… </comment>
 <end> 1-0 </end>
</pgn>
  • 上一篇 中国象棋计算机运用类型()FEN文件花样
  • 下一篇 中国象棋计算机运用类型():中国象棋通用引擎和谈
  • 返 回 象棋百科全书——划定礼貌与和谈
  • www.xqbase.com