Handstory 发表于 2006-5-17 11:59

[讨论]打谱软件功能建议(三则)

最近水兄的StoneBase有了2.0版本,漂亮的界面,贴心的棋谱目录,都让人爱不
释手,我自己一向是用Stonebase+multigo来打谱的。前者有强大的数据库,后者有
完美的sgf编辑功能。其实在此之前,已经用过不少打谱软件,如围棋助手,
SmartGo,WinMGT等等。在使用中也有一些自己的想法,通过比较发现,目前的
打谱软件在某些方面仍然存有空白领域。
<一>:棋局特征码
如果在棋谱信息中加入一个“棋局特征码”,相信对棋局的检索以及棋友间的棋谱
交流会有重大意义。例如,利用棋谱的前160手,每10手采用CRC算法生成一个代
码,可以得到一个16字节的特征码。如果在网上看到一局棋,但不知是谁下的,
可以先生成它的特征码,然后根据特征码就可以方便地找到在数据库中的相应对
局。又例如,如果要找到前10手、前20手相同的棋局,通过特征码来查找也是可
行的。
网友在谈及某一棋谱时,也可以用它的特征码来代表这一局棋。因为目前大家收
集到的棋谱,有很多对局信息不全,用比赛、黑白来查找,未必能查得到。
Stonebase中的棋形查询是很方便的,可惜实时查询的速度太慢,而特征码只要做
一下字串匹配即可。而且特征码可以在将棋谱加入数据库时生成,也可以做为后
台任务在空闲的时间生成,不用做大量的实时运算。在此类查询中,棋局不同而
特征码相同的情况是极少的,即使相同,那时再用“棋形查询”在这几局棋里进行
分析,也能大大减少运算量。
此外,一个理想的特征码算法,应当考虑到棋盘上的“八向对称”,使对称的棋局
有相同的特征码。
<二>:合并棋谱
手头有不少吴清源的棋谱,光“世纪的一局”就有三四个文件,我有心只留一个,
但这几个文件解说都不太一样,变化图也各异。哪个都不能删,删了哪个都心疼
。要是能把它们的解说、变化图都合到一个文件,那就太好了。
比如说,某一手的某一变化是A-B-C-D,另一文件中的另一变化是A-B-E-F,可以
把它们合并成A-B-(C-D或E-F)。
Kogo定式辞典相信大家都有,而且有不少人会自己向其中添加一些变化,可惜是
各自为战,成不了气候,要是有一个合并棋谱的工具,大家分进合击,应该会方
便不少。又例如要输入一个变化图繁多的棋谱,用这种工具也可以实现多人的协
作。
<三>:一步多评
   以下涉及到sgf的格式知识。
合并棋谱时不可避免要遇到多个文件中对同一步棋评论不同的现象。由于sgf的
规格限制,一个结点只能有一个C(评论)属性。如果只是单纯地将不同文件对同
一步棋的评论合并,由于评论中不可避免地有▲●AB等与坐标相关的文字(由
TR,SQ,L等属性定义),不同的评论中,对A、B等位置的定义可能不同,这就为
评论的合并造句造成麻烦。
我的看法是,TR,SQ,L,MK等属性是与C属性相关的,合并时应考虑它们。另外,
结合Sgf格式不允许一个结点有多个C属性的规定,可以发现,如果要保持与sgf格
式的兼容,那么直接把评论合并在同一结点的做法就是不可取的。
有一个变通的办法,即:使当前结点生成一个空的(不会对当前盘上的落子情况
造成改变)、只有C、MK,L,SQ,TR等属性的子结点,在解析时,如果发现当前结
点的子结点符合上述特征,则视为当前结点的评论,在界面中作为TabSheet的一
页显示出来。
汗,写了一堆,不知别人看懂了没有。。。
   

ywqz 发表于 2006-5-19 21:16

up!            
页: [1]
查看完整版本: [讨论]打谱软件功能建议(三则)