中国象棋连线器制作

2018年2月1日
修正board2diffs函数的错误,现在可以根据前后盘面变化自动交换走子权了
2018年1月28日
1、删除了主线程中的定时器,相关代码移动到查询线程中。
2、增加了一些参数设置功能,如超时时间及引擎思考时间之类。

2018年1月24日
1、增加了hotkey.cpp thread.cpp两对文件。增加了两个工作线程(循环走子线程与查询引擎结果线程)
2、把功能分散到各个小文件中,整理了代码。

已完成的功能

1、可热键配合鼠标制作方案,方案可存取,缺省读取方案文件名 “link.lll及配套棋盘图像文件”。
2、只要盘面兵种齐全,F8皆可制作方案(需要制作后手工修改fen串匹配起始盘面,F10重新载入方案即可使用)。
3、方案制作完成后,可识别。
4、可用棋图文件来制作方案并识别棋图文件,删除了无用的代码(只保留opencv相关方法)。
5、position等基本数据结构与自制引擎同步。共享部分代码。
6、用2个线程用来输出思考信息及动态跟踪盘面变化情况并适时启动引擎分析。
7、自带ucci引擎“jqxq.exe”分析局面,可自行选择引擎,可输出中文棋步。
8、兵河运行时,可启动分析,有控制开关。
9、可开启或断开连接,可自动走子。皆有控制开关
10、可自动走子,有控制开关。可切换思考模式,有控制开关。
11、可以连线一般象棋客户端及特殊客户端。
12、151调试通过(须24位),天天象棋手机版(在逍遥模拟器里需32位)调试通过,电脑版本暂未测试。
13、可修改配置参数如样本大小、实时子大小及阈值;引擎思考时间与深度等。

待完成的功能
1、根据两个盘面变化情况返回走子方总是不对! 因此无法自动走子。即无法自动判断交换走子权,减少不必要的引擎计算量,并且方便自动走子。(2月1日完成)
2、自动判断连接时轮谁走子(如等待一定时间后盘面不变,可试走一步,如果能走子则轮到我方,否则轮到对方)
3、考虑GUI(win7下dos黑窗真难看,但输出内容比较方便)

常见问题:
1、从配置文件中读取方案时后,如果截图范围太大(好像未按照窗口大小做裁剪),可能是启动程序时客户端窗口被盖住了。
2、有的客户端在win7下开玻璃效果后可以被遮挡。(但需要用另外一种截图方法)

作者: cavalier

能源行业从业者,业余爱好象棋、C++还有二胡、乒乓也很喜欢

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注