解释
PGN 是 Portable Game Notation 的缩写,是保存和交换国际象棋对局的文本格式。人们可将其作为普通文本打开,程序、网站和数据库则依靠其结构重建对局。
PGN 对局的两个部分
- 标签对部分在方括号中保存 Event、Site、Date、Round、White、Black 和 Result 等信息,这七个标签构成基本存档集合。
- 着法文本部分包含回合数、着法、可选注释、变化和最终结果标记。
注释通常写在花括号内,备选变化写在圆括号内并可嵌套。简短评价可保存为 NAG,即由 $ 和数字组成的代码。一个 .pgn 文件可以保存一局或多局棋。
PGN 记录的是对局或变化树,而不只是棋盘快照。若从非初始局面开始,SetUp 和标签可提供起始局面。FEN 本身只描述局面,不记录着法历史。
PGN 不是什么
PGN 不是引擎思考或与图形界面通信的协议。等协议在程序间交换命令,PGN 则交换对局记录。最便携的文件遵循标准结构并包含合法着法。
最终标记必须是 1-0、0-1、1/2-1/2 或 *,并与 Result 标签一致。星号用于对局仍在进行或没有最终结果。
常见混淆
PGN 与 FEN
PGN 保存对局及元数据;FEN 描述一个起始或中间局面。
PGN 与 UCI
PGN 是对局记录格式;UCI 是引擎通信协议。
来源
- 1.Portable Game Notation Specification and Implementation Guide, Steven J. Edwards
- 2.PGN parsing and writing, python-chess
