找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 190|回复: 1

[【心情日记】] 近日编程随笔之修改象棋打谱程序

[复制链接]
发表于 2018-8-13 10:22:53 | 显示全部楼层 |阅读模式
本帖最后由 agent124 于 2018-8-14 02:46 编辑

近来打算把积压的一些小程序逐一完善。有的已经拖了好长时间了,主要是前段时间忙于下电影,上传到onedrive等。

这几天本来是想修改完善一个关于象棋棋谱的程序。写这个程序的初衷是因为想在kindle上看棋谱,但是因为本人象棋水平很臭,心算能力很弱,棋谱看了几步,就搞不清棋局形势了,所以想将每一步着法都转成一张棋图,然后制作成epub再用calibre转成mobi后放到kindle上看。玩象棋的人大概都听说过象棋演播室(xqsudio)和象棋桥(ccbridge)这两个棋谱管理和打谱软件。这两个软件所使用的xqf和cbl格式的棋谱,网上可以找到很多(后者据说有30万盘),显然是制作素材的理想来源。这两个软件都支持将棋图输出为图片文件,但美中不足的是只能输出单张图,若是将一局棋的每一步着法都手工一张张转成图片,不知要到猴年马月才能完成。于是想到编程实现。但是,没有这两个软件的源代码(xqsudio后来下到了源码,但是用delphi写的,本人一窍不通),难以修改。又想到通过解析棋谱,自己生成棋图,所以一开始自己利用GDI+做了个棋盘,实现了走子和生成棋图的功能。象棋演播室和象棋桥都可以输出文本棋谱,但是遗憾的是不支持变着,所以只好利用windows消息,用类似做外挂的方法,折腾了几天,总算完整导出了棋谱,不过还有点小毛病,本来这几天打算修改。

正准备动工,忽然一想,既然有象棋演播室的delphi源码,为什么不在此基础上修改一下,这样肯定要稳定得多,效率也必然比做外挂的方式高。借此机会也碰碰delphi。delphi毕竟是和c#, java等属于同一编程范型,不象prolog那样怪,靠一点老底子,大概还走得通。因为不想深究,就没有下载最新版本,而从网上下载了一个7.0的所谓精简优化绿色版,据说delphi 7.0是评价甚高的一个版本。

结果动起手来,发现问题多多。比如,7.0不支持unicode,2009版之后才支持,只好找了半天,总算找到一个可用的库,也不支持zip文件操作,只好又找了个库。。。。。。由于对delphi不熟悉,加上编程水平不高,整整折腾了四五天,才总算实现了功能,可以将完整的棋谱导出为epub,或者导出为文本棋谱,支持变着。

至于象棋桥,下了个3.04 beta版,多了个转棋谱到xqf格式的功能。这样可以“曲线救国”,将cbl转成xqf后再导出。所以也不想再用windows消息的方式来做了,这个项目到此为止。delphi今后若无特殊原因,一般也不想再碰。

体会是:除非是为了怀旧,编程语言和工具能不用老版就不用老版。不要想当然地以为“老版也够用了”,碰到具体问题,老版不支持,就很麻烦。

评分

1

查看全部评分

回复

使用道具 举报

发表于 2018-8-13 17:12:37 | 显示全部楼层
程序猿,景仰一下下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-4-18 11:40 , Processed in 0.375893 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表