WThor数据库文件格式

以下资料是根据法国黑白棋联合会的《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
页首