围棋文本对局格式
🅭🅯🄎   余俊峰 2024-01-12

Weiqi Text Format
第22版


目录

1 总则
1.1 概述
1.2 文本编码
1.3 保留字符
1.4 对局
1.5 节点
1.6 属性名
1.7 属性值
2 属性值类型
2.1 普通文本
2.2 整数
2.3 小数
2.4 日期
2.5 结果
2.6 颜色
2.7 着点
3 属性列表
3.1 基本属性
3.1.1 执黑
3.1.2 执白
3.1.3 黑方下子
3.1.4 白方下子
3.2 附加属性
3.2.1 格式版本
3.2.2 棋盘路数
3.2.3 预置黑子
3.2.4 预置白子
3.2.5 先手方
3.3 可选属性
3.3.1 事件
3.3.2 日期
3.3.3 地点
3.3.4 规则
3.3.5 贴子
3.3.6 结果
3.3.7 注释
3.4 扩展属性
3.4.1 应用
3.4.2 来源
3.5 自定义属性
4 示例
4.1 孙策诏吕范弈棋局面
5 版权
6 致谢


1 总则

1.1 概述

本格式中文名称为"围棋文本对局格式",英文名称为"Weiqi Text Format",简称"WTF"。

以纯文本储存围棋对局,除换行符以外不能有任何不可见字符。

1.2 文本编码

文本使用gb18030编码。

1.3 保留字符

用以描述格式的字符,'('、')'、';'、'['、']'共5个。

1.4 对局

对局文本以'('开始、')'结束,中间是以';'开头的节点系列。

对局至少有一个根节点。最小长度的合法的对局文本为"(;)"。

1.5 节点

节点由格式为"Name[Value]"的属性系列组成。

节点有两种类型:根节点和着手节点。根节点必须有且只有一个,位于对局所有节点之首。着手节点在根节点之后;没有着点属性的着手点节点无效。

1.6 属性名

以两个大写拉丁字母表示。

1.7 属性值

以任意可打印字串表示。

一个属性有多个值且每个值的长度不固定,用空格字符' '分隔。

2 属性值类型

2.1 普通文本

格式:"s"。以定义的可打印字串表示。不能包含保留字符。

2.2 整数

格式:"i"。以阿拉伯数字表示的十进制整数。

2.3 小数

格式:"f"。以阿拉伯数字表示的十进制小数。

2.4 日期

格式:"y-m-d"。以整数分别表示年(y)、月(m)、日(d)。

如"1985-8-27"。如果后面部分未知则省略,如"1985-8"、"1985"。

2.5 结果

格式"s+f"。以字串、小数表示的对弈结果。

有效的值:"未知"、"无"、"黑中盘胜"、"白中盘胜"、"黑超时负"、"白超时负"、"黑判负"、"白判负"、"黑胜+f"、"白胜+f"、"和棋"。

当为"黑胜+f"、"白胜+f"时,f以小数记录胜方多出来的地域数量,还可以加上地域单位,如目、子。

2.6 颜色

格式:"c"。以记录对弈一方颜色的字串表示。

有效的值:大写拉丁字母'B'、'W'、'E'分别表示黑、白、空。

2.7 着点

格式:"xy"。以棋盘上的下子位置表示,先列(从左到右)后行(从上到下),以小写字母顺序命名各路,第1路'a',最多至第25路'y'。棋盘路数的外一路为虚着。

如19路棋盘,1至19路以小写字母'a'至's'表示。虚着以"tt"表示。

3 属性列表

3.1 基本属性

基本属性是一个完整的对局记录必需的部分。

3.1.1 执黑

PB (Player Black)

执黑棋一方。
值类型:普通文本。
如"PB[孙策]"。
本属性只能置于根节点。

3.1.2 执白

PW (Player White)

执白棋一方。
值类型:普通文本。
如"PW[吕范]"。
本属性只能置于根节点。

3.1.3 黑方下子

B (Black)

黑方下子的着点。
值类型:着点。
如"B[gq]"。

3.1.4 白方下子

W (White)

白方下子的着点。
值类型:着点。
如"W[cn]"。

3.2 附加属性

附加属性是非标准路数棋盘或有预置棋子对局必需的部分。

3.2.1 格式版本

FF (File Format)

本格式定义的版本编号。
值类型:整数。
如"FF[1]"。
本属性只能置于根节点。

3.2.2 棋盘路数

SZ (SiZe)

棋盘的路数。
值类型:整数。
如"SZ[9]"。
有效值范围:5至25。标准19路棋盘的对局记录可以省略本属性,否则必须设置本属性。
本属性只能置于根节点。

3.2.3 预置黑子

AB (Add Black)

正式对弈前在棋盘上置放的黑子。
值类型:着点列表。
如"AB[pd][dp]"。
有预置黑子的必须设置本属性。如古代的座子棋,现代的让子棋。
本属性只能置于根节点。

3.2.4 预置白子

AW (Add White)

正式对弈前在棋盘上置放的白子。
值类型:着点列表。
如"AW[dd][pp]"。
有预置白子的必须设置本属性。如古代的座子棋。
本属性只能置于根节点。

3.2.5 先手方

PL (Player to pLay)

正式对弈时先下子一方的颜色。
值类型:颜色。
如"PL[W]"。
先下子一方非黑色的必须设置本属性。
本属性只能置于根节点。

3.3 可选属性

可选属性是应当有,但非必需的部分。

3.3.1 事件

EV (EVent)

对局事件。
值类型:普通文本。
一般为比赛名称,如"EV[孙策诏吕范弈棋局面]"。
本属性只能置于根节点。

3.3.2 日期

DT (DaTe)

对局开始的日期。
值类型:日期。
本属性只能置于根节点。

3.3.3 地点

PC (PlaCe)

对局举行的地点。
值类型:普通文本。
如"PC[吴郡]"。
本属性只能置于根节点。

3.3.4 规则

RU (RUle)

对弈使用的规则。
值类型:普通文本。
如"RU[中国规则]"。
本属性只能置于根节点。

3.3.5 贴子

KM (KoMi)

先下子一方补偿对方一定数量的地域以维护公平。
值类型:小数。
如"KM[2.75]"。
本属性只能置于根节点。

3.3.6 结果

RE (REsult)

对弈的结果。
值类型:结果。
如"RE[黑中盘胜]"。
本属性只能置于根节点。

3.3.7 注释

C (Comment)

说明性文本。
值类型:普通文本。
如"C[有记录的最早的棋谱。]"。

3.4 扩展属性

除以上属性外的其他标准属性。

3.4.1 应用

AP (APplication)

创建棋谱的应用程序名称。
值类型:普通文本。
如"AP[Qi 1.0.0]"。

3.4.2 来源

SO (SOurce)

棋谱来源。
值类型:普通文本。
如"SO[《忘忧清乐集》]"。

3.5 自定义属性

除以上定义的标准属性外,另行定义的属性。

自定义属性名称及简写不能与标准属性相同。

4 示例

4.1 孙策诏吕范弈棋局面

(;AP[Qi]SO[《忘忧清乐集》]
EV[孙策诏吕范弈棋局面]DT[200]PC[吴郡]PB[孙策]PW[吕范]
AB[pd][dp]AW[dd][pp]
C[存世最早的棋谱。]
;W[cn];B[gq];W[en];B[ci];W[ck];B[cf];W[ce];B[df];W[gc];B[ic]
;W[iq];B[bo];W[bn];B[lc];W[qf];B[qk];W[qi];B[qn];W[nc];B[nd]
;W[qc];B[pc];W[qd];B[qb];W[rb];B[pb];W[qo];B[pn];W[mq];B[cc]
;W[dc];B[be];W[bd];B[cd];W[bc];B[de];W[cb];B[rh];W[qg];B[ri]
;W[ho];B[eq];W[no])

为了排版的需要,其中加了换行符。

5 版权

允许遵循GNU自由文档许可证1.2版或更新版的条款复制、发布并且/或修改本文;“目录”及以下的部分是不可变章节。许可证的副本可以从http://www.gnu.org/licenses/fdl.html获取。

6 致谢

本格式基于 Smart Game Format ,感谢其起草者 Anders Kierulf, Martin Müller 。