以下资料是根据法国黑白棋联合会的《Format de la base WThor》整理而成,更多细节请查看原文。
WThor数据库共包括三种文件:棋手库文件、比赛库文件和对局库文件。
棋手库文件名为WThor.JOU,包含所有WThor数据库所涉及的棋手名字。
比赛库文件名为WThor.TRN,包含所有WThor数据库所涉及的比赛名称。
对局库的文件名形如WTH_####.WTB(对于10×10黑白棋为WTH_####.WTD),其中####表示年份,包含当年内各种比赛对局的棋谱。
值得注意的是,在使用WThor数据库时,对局库可以有多个,但棋手库和比赛库分别只能有一个,而且必须是最新的,否则将无法反映新增的棋手和比赛。
数据库文件都是由两部分组成,文件开始16个字节是文件头,后面是多条记录,每条记录的字节数都是固定的。以下分别进行介绍。
文件头占16字节,具体结构如下:
名称 | 字节数 | 说明 |
建立年份1 | 1 | 文件建立年份的高2位,如“20”表示20**年 |
建立年份2 | 1 | 文件建立年份的低2位,如“03”表示**03年 |
建立月份 | 1 | 文件建立的月份 |
建立日期 | 1 | 文件建立的日期 |
记录数N1 | 4 | 对局库文件所包含的记录数(棋手库和比赛库为0) |
记录数N2 | 2 | 棋手库或比赛库文件所包含的记录数(对局库为0) |
对局年份 | 2 | 对局年份 |
棋盘大小P1 | 1 | 0或8表示8×8棋盘,10表示10×10棋盘 |
游戏类型P2 | 1 | 1表示solitaire游戏,0表示其他(包括黑白棋) |
搜索深度P3 | 1 | 完美终局解算的搜索深度,如“24”表示当盘面还剩24个空位时,进行完美终局解算 |
X | 1 | 保留 |
每条记录包含一位棋手名字,占20字节,为字符串类型(以'\0'结尾)。对于程序棋手,一般在程序名后用括号加注程序作者,如“Zebra(andersson)”。
每条记录包含一个比赛名称,占26字节,为字符串类型(以'\0'结尾)。
每条记录包含一个对局棋谱,占68字节(10×10黑白棋为104字节),具体结构如下:
名称 | 字节数 | 说明 |
---|---|---|
比赛名称 | 2 | 这里只是个索引号,具体名称要查比赛库中的相应记录(0对应第一条记录) |
黑方棋手名字 | 2 | 这里只是个索引号,具体名字要查棋手库中的相应记录(0对应第一条记录) |
白方棋手名字 | 2 | 这里只是个索引号,具体名字要查棋手库中的相应记录(0对应第一条记录) |
比赛结果 | 1 | 对局结束时的黑棋数(多余空格归胜方) |
最佳结果 | 1 | 进行完美终局解算后的黑棋数,搜索深度由文件头参数确定 |
对局棋谱 | 60 | 每步棋占一个字节,记录为:行号*10+列号,即“11”代表A1,“12”代表B1……,跳步(Pass)不作记录。当棋盘未下满时,后面多余的字节填0 |