十年前(2005年)我本科的毕业设计做了一个中国象棋的 桌面程序 智慧 中国象棋 (Xiang Qi)
一款完全免费的 中国象棋 (Xiang Qi) 游戏
后来认识媳妇之后 改名成 ‘智慧’ 我俩名字的一个字. 最开始代码是在DELPHI 7下编译的 后来移到 DELPHI 2007 最近休假 又整了整代码 移到了 DELPHI XE8 下编译.
DELPHI XE8 下支持 多线程并行语句 例如 Parallel.For, Parallel.ForEach, 而且DELPHI XE8是 UNICODE的. 新版本的代码质量速度效率要比以前的版本好一些.
不懂玩象棋的人可以看维基百科 https://zh.wikipedia.org/wiki/%E8%B1%A1%E6%A3%8B
我写了一个英文(很久之前, 未更新)的 英文简介 https://rot47.net/91
2015年11月02日 下载: 3.0.0.500
更新: 记录
持续深入算法 Iterative Deepening
在人工智能里, 持续深入算法 Iterative Deepening 很常用于棋类程序中. 这个概念很简单:
1 2 3 4 5 | while (还有时间) { 搜索深度 ++ ; best_move = do_search(搜索深度); } apply_best_move(best_move); |
while (还有时间) { 搜索深度 ++ ; best_move = do_search(搜索深度); } apply_best_move(best_move);
这个代码看起来第一眼好像做了很多无用功 – 既然要搜索 深度为 6 为什么要先搜索深度为 5? 其实搜索算法 (例如 Alpha-beta 剪枝) 会用到 哈希表 用于保存之前搜索的一些经验. 这些经验能对之后的搜索有着速度的提高作用 所以直接搜索 深度为6可能没有搜索深度4+深度6来得快.
而且最为主要的是: 当时间还有的时候就继续加深搜索深度(电脑继续思考) 这样程序就不会受限于搜索固定深度. 比如在好电脑快电脑上 同样的时间算法搜索的深度更深这样智力也就更强!
这个程序的棋力 大概是 6秒内想三个回合 中局和 残局的时候 能想 4到6个回合
2015-Nov-7 更新
501版本 支持 64位 所以在安装后桌面会有两个游戏图标 一个是32位 另一个是64位. 在64位下也许会更有效率 可以肯定的是程序更加稳定 可以使用的内存更多, 不再受限于3.5GB (打开大内存LAA)
强烈推荐
- 英国代购-畅购英伦
- TopCashBack 返现 (英国购物必备, 积少成多, 我2年来一共得了3000多英镑)
- Quidco 返现 (也是很不错的英国返现网站, 返现率高)
- 注册就送10美元, 免费使用2个月的 DigitalOcean 云主机(性价比超高, 每月只需5美元)
- 注册就送10美元, 免费使用4个月的 Vultr 云主机(性价比超高, 每月只需2.5美元)
- 注册就送10美元, 免费使用2个月的 阿里 云主机(性价比超高, 每月只需4.5美元)
- 注册就送20美元, 免费使用4个月的 Linode 云主机(性价比超高, 每月只需5美元) (折扣码: PodCastInit2022)
- PlusNet 英国光纤(超快, 超划算! 用户名 doctorlai)
- 刷了美国运通信用卡一年得到的积分 换了 485英镑
- 注册就送50英镑 – 英国最便宜最划算的电气提供商
- 能把比特币莱特币变现的银行卡! 不需要手续费就可以把虚拟货币法币兑换
微信公众号: 小赖子的英国生活和资讯 JustYYUK