在中国,已有几千年历史、充满东方智慧的象棋在中国的群众基础远远超过围棋,一直是普及最广的棋类项目。下面学习啦小编给你介绍中国象棋电脑PGN文件格式,欢迎阅读。

中国象棋电脑PGN文件格式一、概述

PGN(Portable Game Notation)是棋类游戏过程的文件格式,既然国际象棋以这个规范作为记录棋谱的标准,那么对于中国象棋来说,在还没有一个统一标准的今天,PGN无疑是一个好的选择。PGN文件有以下特点:

(1) PGN文件是文本格式的,可以用任何文本编辑软件建立和修改;

(2) PGN文件分为“标签部分”和“着法部分”,两部分都规范整齐,既方便阅读,也便于棋谱编辑软件产生和解读;

(3) 一个PGN文件允许包含多个棋局,形成简易的棋谱数据库;

(4) PGN文件的格式是公开的,现在已经被绝大多数棋谱编辑软件所接受(仅指国际象棋,目前还没有可以产生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) 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:开始局面,中局、残局和排局等摆出来的局面,作棋谱记录时通常要规定这个选项;

(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记谱规范(上)一文。

中国象棋电脑PGN文件格式三、棋谱部分

这部分是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文件格式四、举例

下面是一个很经典的例子,这个例子能很好地反映中国象棋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

中国象棋电脑PGN文件格式五、变着

变着用圆括号“()”表示,变着是以棋谱的形式对棋谱的评注,因此括号里的内容本身也是棋谱,里面还可以嵌套评注(用花括号)和变着(用圆括号)。变着针对的是括号前的着法,例如在下面一段棋谱中,变着指的是“炮2进7”改走“炮2平3”:

7. 车六进八 炮2进7 (7. ... 炮2平3 8. 帅五平六 炮3进5 9. 车六进一 将5进1 10. 炮五退二 {黑方不易驾驭局面})

中国象棋电脑PGN文件格式六、PGN与XML

如今网络技术发展飞快,棋谱要能发布在互联网上,需要一种容易被互联网应用程序所识别的格式,XML无疑是一种好的选择。由于PGN的标签和XML的容器具有类似之处,所以PGN和XML的转换非常方便。目前XML的棋谱规范尚未形成,但是只要照搬PGN格式的内容,就不难形成一个公认的XML格式。例如,上面一个实例转化为XML格式的文本,就可以是以下形式:

Chinese Chess

许银川让九子对聂棋圣

广州

1999.12.09

许银川

聂卫平

1-0

rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/9/1C5C1/9/RN2K2NR r - - 0 1

炮八平五 炮8平5

1-0

看了“中国象棋电脑PGN文件格式 ”的人还看了:

计算机6种文件格式,中国象棋电脑PGN文件格式相关推荐

  1. matlab识别中国象棋棋盘,一种基于图像处理的中国象棋识别系统及方法与流程

    本发明涉及计算机图像识别技术,具体涉及一种基于图像处理的中国象棋识别系统及方法. 背景技术: 数字图像处理技术在机器感知领域应用十分广泛,主要目标是通过一些图像处理技术从图像中提取信息,该信息类似于人 ...

  2. GPT v.s. 中国象棋:写过文章解过题,要不再来下盘棋?

    ©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 ▲ 中国象棋 不知道读者有没有看过量子位年初的文章<最强写作AI竟然学会象棋和作曲,语言模型跨界操作 ...

  3. 用 Python 的 tkinter 模块编写一个好看又强大的中国象棋

    继上次我的第一版的<中国象棋>程序之后,我又编写了第二版的<中国象棋>程序,关注我的粉丝知道,我在第一篇<中国象棋>的文章末尾说了,我会出第二版的,对第一版感兴趣的 ...

  4. 中国象棋通用引擎协议

    一.概述 中国象棋通用引擎协议(Universal Chinese Chess Protocol,简称UCCI),是一种象棋界面和象棋引擎之间的基于文本的通讯协议.设立中国象棋通用引擎协议的目的有: ...

  5. 中国象棋程序的设计与实现(六)--N皇后问题的算法设计与实现(源码+注释+截图)...

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题. 该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列 ...

  6. 计算机中国象棋书籍,[建议]中国的象棋永远不能被没有“思维”的电脑所代替(就目前的电脑象棋软件...

    [建议]中国的象棋永远不能被没有"思维"的电脑所代替(就目前的电脑象棋软件有感而发) 先自我介绍一下,本人来自上海,师从原江苏省棋队教练言穆江大师,现年28岁,无任何值得自傲的成绩 ...

  7. 扩充计算机内存是扩充什么,怎么增加电脑内存 三种方法让你电脑内存扩大

    电脑可以说在我们日常生活中起到的作用还真不小,可以说它也是我们的小助手,要看电脑的好坏,它的内存就可以来衡量一台电脑性能的重要标准之一.下面小编就来给大家介绍一下怎么增加电脑内存及三种方法让你电脑内存 ...

  8. 计算机故障维修四种思路,维修“望闻问切” 电脑故障的排除方法

    看到这个题目,很多读者可能会感到奇怪,中医与计算机维修风马牛不相及,它们怎么会扯到一起呢?我们知道,中医在长期的医疗实践中,总结出了四种论断疾病的方法,这就是"望.闻.问.切"四诊 ...

  9. 中国象棋将帅问题的一种解法

    "中国象棋将帅问题"的一种解法 在<编程之美:微软技术面试心得>一书中,看到这样一道"中国象棋将帅问题": 下过中国象棋的朋友都知道,双方的&quo ...

最新文章

  1. datanucleus mysql_DataNucleus Access Platform 3.1.2发布
  2. mysql ndb 测试_.部署MYSQL集群 --测试
  3. hbase性能优化2
  4. AlertDialog创建6种对话框的用法
  5. 阴差阳错2019-12-13
  6. java 转账 锁_Java多线程 多个人转账发生死锁
  7. mybatis_SQL映射(1)
  8. 【Python】Matplotlib绘制极坐标螺旋线图
  9. 时间格式转换y-m-d
  10. Open vSwitch流表应用实战
  11. Verilog实现独立按键消抖(状态机)
  12. C#事件的自定义声明
  13. zabbix2.4监控mysql_Zabbix 2.4.5自带MySQL监控的配置使用教程
  14. 下载 一寸照片编辑器
  15. cocos creator 微信小游戏 世界排行榜制作教程(云数据库)
  16. ds18b20负温度c语言,温度显示异常DS18B20
  17. CSDN去广告JS插件
  18. 量化研究数据来源汇总
  19. 读研攻略(7)—从0到1,研究生第一篇SCI的诞生
  20. leetcode【135】Candy【c++版,双数组,单数组,坡峰坡谷】

热门文章

  1. 发送到谷歌邮箱的邮件在哪找_如何让Google表格为您发送个性化电子邮件
  2. 最新计算机专业毕业设计论文选题源码演示录像下载(开题报告任务书PPT毕业答辩模板jsp352 cs拼图游戏的设计与实现
  3. Android如何避免抓包
  4. 安卓实现笔记本app
  5. RedisTemplate multiGet
  6. LoRa 扩频因子和码片
  7. 2021-08-17
  8. 功率放大器电路图集(多种类功率放大电路)
  9. MFC程序的剖析及生死因果揭秘
  10. 野火FPGA-状态机