版本号: 1.2
SGF 是为了存储双人棋类对局记录而设计的一种文件格式。它是纯文本格式,就是它不能包含二进制数据,所以可以方便地使用电子邮件发送或发送到新闻组。基于树形结构的意思是从根节点开始沿着主枝进行或转到 分支(或分支的分支)。
(;FF[4]GM[1]SZ[19]AP[SGFC:1.13b] PB[troy]BR[12k*] PW[john]WR[11k*] KM[0.5]RE[W+12.5] DT[1998-06-15] TM[600] ;B[pd];W[dp];B[pq];W[dd];B[qk];W[jd];B[fq];W[dj];B[jp];W[jj] ;B[cn]LB[dn:A][po:B]C[dada: other ideas are 'A' (d6) or 'B' (q5)] ;W[eo](;B[dl]C[dada: hm - looks troublesome. Usually B plays the 3,3 invasion - see variation];W[qo];B[qp] ... ;W[sr];B[sk];W[sg];B[pa];W[gc];B[pi];W[ph];B[de];W[ed];B[kn] ;W[dh];B[eh];W[se];B[sd];W[af];B[ie];W[id];B[hf];W[hd];B[if] ;W[fp];B[gq];W[qj];B[sj];W[rh];B[sn];W[so];B[sm];W[ep];B[mn]) ... (;W[dq]N[wrong direction];B[qo];W[qp]))
没有一个程序是完美无缺的。随着 SGF 的发展,强烈推荐至少每年更新一次你使用的应用软件。现在很多人仍然使用五年以上的软件会带来很多麻烦。
请定期更新你的应用软件!
节点是最小可见单元。 就是用户可以沿着对局树一步步地查看节点(向前或向后)。
节点由属性组成。 属性包含一定地信息,例如属性 B[] 描述黑子着子,属性 C[] 包含评论文本 (不用担心: 你不必这些属性名字)。
举例说明: 你向后查看一个新着子,可以看到评论窗口内显示评论,同时棋盘上对应位置被标记,所有这些信息通过位于同一节点内的不同的属性表现出来。
这样,编辑棋谱有两种层次: 增加/删除节点和增加/删除属性。
请明白这一点: 一个着子是一个节点的一部分,而非节点是着子的一部分。着子通过属性来描述而且节点可以包含不只一个属性。
放置棋子 是把棋子放置在棋盘上来设置棋形,
例如让子、设置题形或分析形势。这种情况下,可以放置多个棋子及不同色的棋子,移走棋子和改变子色等都在一个节点中。
注意: 不能捕获棋子,因为这不是按比赛规则进行!
因此把设置属性和走子属性放在一个节点中是 非法的。
走子属性
是一个黑子或白子的着子,可以对一个走子给予注释(例如恶手、有趣手等)或指示该手后还剩多少时间。
设置属性
是用来设置棋形就是在棋盘上放置黑白子或指示轮哪方走棋。
参看: 设置属性和走子属性的 详细列表 。
令人遗憾的是许多应用软件允许混合设置属性和走子属性,导致用户创建不良风格的 SGF 文件。
应用软件演示分支进行有两种方式: 兄弟节点方式和子节点方式。
子节点方式演示分支是 从父节点可以向任一子节点进行。
兄弟节点方式演示分支是 从父节点下的某一子节点可以向该父节点的另一子节点进行。
这两种不同方式的分支进行方式可能会引起混淆。例如,如果有评论是这样的: 这手棋不好,请看变化图B。如果作者使用子节点演示方式的应用软件,该评注则处于父节点上。如果读者使用兄弟节点演示方式的应用软件,将会看到评注在父节点上,但没有变化图,变化图在下一手才出现。反之(作者用兄弟节点方式,读者用子节点方式)也出现类似问题,读者在子节点上看到评注,但不得不退到上一手才能进入变化图。
许多人更喜欢兄弟节点方式因为它比较自然。他们甚至在子节点方式的应用软件中使用模仿的兄弟节点方式。他们的做法是在分支节点上取走前一个着子并增加一个新着子。这是不好的风格,而且自
FF[4]
起这也是非法的句法。它将导致你无法一览某一手的所有变化图,而且,转换成其它文件格式时也会带来麻烦。如果你喜欢兄弟节点方式那么就使用兄弟节点方式的应用软件。
注释 | 属性 | 类型 | 程度 | 意义 | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
黑好 | GB | 基本注释 | 是 | 黑棋形势占优 | ||||||||||||||||||||||||||||||||||||||||
白好 | GW | 基本注释 | 是 | 白棋形势占优
两分
| DM
| 基本注释
| 是
| 黑白双方形势相当
| 形势不明
| UC
| 基本注释
| 是
| 黑白双方形势不明
| 热点
| HO
| 基本注释
| 是
| 重要的节点,令人关注的着子
| 手筋
| TE
| 走子注释
| 是
| 局部的好的着手
| 恶手
| BM
| 走子注释
| 是
| 不好的着手
| 疑问手
| DO
| 走子注释 | 否
| 值得推敲的着手
| 有趣手
| IT
| 走子注释
| 否
| 有趣的着手
| 轮谁走
| PL
| 位置注释
| 否
| 轮某方走
| |
令人遗憾的是许多应用软件不能支持这些属性,希望将来能有所改观。尽可能使用注释属性,尽管它们很简单,却有很大的优势。
注意,某些条目属性使用强制的格式。为什么?
因为符合标准的条目可以方便地被应用软件解析,并且可以被从多个对局文件中搜索或者用读者喜爱(定制)的方式显示。令人遗憾的是许多应用软件允许用户输入不合法的信息,所以能否输入正确的信息取决于用户,请谨慎使用。
例如,你有一个含有大约5000局的棋谱集,你需要从中寻找赵治勋在1996年3月的对局,如果日期被写为如“DTT[5th March 1996]”,“ DT[11/3/96]”,“DT[1996/3/7]”,“DT[1996 6 8]”,你如何知道这些是你需要寻找的对局呢?
Name | Property | Notes |
---|---|---|
执黑者姓名/执白者姓名 | PB[]/PW[] | 执黑者或执白者的姓名 尽量保持姓名的一致,职业棋手推荐使用官方公布的姓名。 |
执黑者级别/执白者级别 | BR[]/WR[] | 执黑者或执白者的棋力 推荐使用下列格式: 具有“级别”的棋手,使用“10k” 或 “10 kyu” 具有“段位”的棋手使用“3d”或“3 dan” 围棋服务器通常在被确定的段位后加“*”,在不被确定的段位后加“?”,例如“10k*”、“3d?” 由于围棋服务器段位和被围棋机构正式授予的段位都用“d”表示容易混淆,一些应用软件使用“p”作为被围棋机构正式授予的段位,以示区别。 |
执黑者队名/执白者队名 | BT[]/WT[] | 执黑者或执白者所在的队名 |
比赛结果 | RE[] | 比赛结果 强制使用以下格式: "0" 表示和局 "B+score" 表示黑胜 "W+score" 表示白胜, 例如 "B+2.5", "W+64" or "B+0.5" "B+R"/"B+Resign" 和 "W+R"/"W+Resign" 表示中盘胜 你不能写作“黑中盘胜”请看更多的 详情描述 |
贴还 | KM[] | 贴还(指贴还后手方的数目) 强制使用以下格式: 使用实数,例如: "5.5", "0", "0.5" or "-10," 等 不要使用: "5点", "半目", "五又二分之一子", 等 |
让子 | HA[] | 让子的数目 强制使用以下格式: 使用大于零的整数,例如: "1", "5" or "9" 不要使用: "二子", "三" 等 |
时间限制 | TM[] | 每方规定的使用时间 强制使用以下格式: 时间使用以秒为单位的实数,例如 "4600", "300" 不要使用: "1 小时"如果你的应用软件不能把实数转换成易读的格式,是一件尴尬的事情,尽管如此,还是请坚持使用实数值。 |
比赛日期 | DT[] | 比赛时间 强制使用以下格式: 使用 ISO 标准格式 "YYYY-MM-DD" 不要使用其它的分隔符诸如 "/" 或 " " 或 ".". 例如: 一场在一九九七年三月五日进行的比赛记为: 1997-03-05请看更多的 详情描述 |
赛事名称 | EV[] | 赛事的名称(例如: 应氏杯) |
回合数 | RO[] | 比赛的回合数,用于番棋 |
比赛地点 | PC[] | 比赛发生的地点(例如城市、国家),也可以是围棋网络服务器 |
比赛规则 | RU[] | 比赛规则 (例如: 中国规则、日本规则、韩国规则、应氏规则等) |
比赛名称 | GN[] | 比赛的名称 |
开局 | ON[] | 描述开局 (例如: 三连星) |
比赛评论 | GC[] | 对比赛的一般的评论 |
棋谱来源 | SO[] | 棋谱来源 (例如: 书、杂志等) |
棋谱录入 | US[] | 录入棋谱的人或程序 |
棋谱评论 | AN[] | 评注者姓名 |
版权信息 | CP[] | 棋谱的版权信息 |