已完成的功能(github:简易象棋连线器)
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、可修改配置参数如样本大小、实时子大小及阈值;引擎思考时间与深度等。
待完成的功能
0、静态连接功能未完成,发行版本未调试。
0、有的客户端在win7下开玻璃效果后可以被遮挡(需要用另外一种截图方法,未完成更改代码)
2、如果远程对方执红先走了一步棋,则ALT_F8制作方案完成后,需修改对应配置文件中的初始fen串,重新载入方案即可。可改进为自行判断自动选择正确的方案(通过判断识别出来的棋盘的正确性为判断方案选择对错与否)。
1、自动判断连接时轮谁走子(如等待一定时间后盘面不变,可试走一步,如果能走子则轮到我方,否则轮到对方)
2、考虑GUI(win7下dos黑窗真难看,但输出内容比较方便)
可以看看这篇博文
常见问题:
1、从配置文件中读取方案时后,如果截图范围太大(像未按照窗口大小做裁剪),可能是启动程序时客户端窗口被盖住了。
3、缺省引擎为jqxq.exe,如果需要改用别的引擎,需更改文件名为jqxq.exe 并放置在当前目录下(可改进为自行自由选择引擎)。
开发日志:
2018年7月21日
利用颜色直方图区分个别红黑易混淆的棋子,测试了几个出错的盘面都OK!hwnd2mat函数中,截图位深要与CV_8UC4匹配才行。32位时兵河识别时崩溃。如果改用.jpg格式,则此处即使使用32位深度,存盘后也是24位的(win7默认jpg位深24位,PNG32位?)将就办法,增加了全局变量控制屏幕截图位深,用ALT_F7热键切换。
2018年2月1日
修正board2diffs函数的错误,现在可以根据前后盘面变化自动交换走子权了
2018年1月28日
1、删除了主线程中的定时器,相关代码移动到查询线程中。
2、增加了一些参数设置功能,如超时时间及引擎思考时间之类。
2018年1月24日
1、增加了hotkey.cpp thread.cpp两对文件。增加了两个工作线程(循环走子线程与查询引擎结果线程)
2、把功能分散到各个小文件中,整理了代码。