Commit Graph

549 Commits

Author SHA1 Message Date
Calcitem f2a164979a build: qt: android: Fix build failed
Reference: https://bugreports.qt.io/browse/QTBUG-76293
2019-10-02 19:58:56 +08:00
Calcitem 8e54962233 ai: tt: 使用更新年龄机制来取代每次全部清空置换表
memset 大块内存效率较低, 故在哈希表中增加年龄纪录,
当年龄不一致时即认为哈希表项过时, 就更新它.
如果年龄一致则从中读取数据.
年龄增长到255时才清空一次置换表, 这样自对弈一盘棋只需要清2次.

修改使用 TRANSPOSITION_TABLE_FAKE_CLEAN 宏控制.

代价是会增加哈希表的体积, 空间换时间.
自对弈时长由 63s 缩短到 54s, 提速 15%.
2019-10-02 19:23:52 +08:00
Calcitem 2918b9a23d stack: 增加 Stack 类取代 std::stack 并且在拷贝时使用 memcpy 提高效率
自对弈时长由66秒缩短到63秒, 提速 4.5%.
2019-10-02 11:36:17 +08:00
Calcitem 306373371c refactor: 增加 doMove() 和 undoMove() 2019-10-02 10:25:14 +08:00
Calcitem d4407e80ea refactor: TranspositionTable 简写为 TT 2019-10-02 09:59:21 +08:00
Calcitem 40971cb3fa ai: window: 细分摆子阶段和走棋阶段的窗口 2019-10-02 09:43:40 +08:00
Calcitem 57dd0a2929 ai: IDS 时使用期望窗口
IDS前期期望窗口定为 301 时,才不会改变摆子阶段自对弈棋谱. 原因未知.
但定为301则性能没有可见的提升.

IDS 最后一次迭代期望窗口定为 179. 性能提升主要依靠这个.

最终自对弈时长由 70s下降到65s, 提速7%.

参考: https://www.xqbase.com/computer/advanced_aspiration.htm
2019-10-02 01:46:34 +08:00
Calcitem 41abab1756 type.h 增加几个定义备用 2019-09-30 01:58:42 +08:00
Calcitem e0b78a9ad9 启用 square_t 类型并设置为32位 (原来用8位表示 square) 2019-09-30 01:37:59 +08:00
Calcitem be82dbf1b5 新增 index_t 类型并设置为8位 (原来用32位表示 index) 2019-09-29 23:19:52 +08:00
Calcitem 0d6f4edd52 refactor: location 作下标时改为 index 2019-09-29 23:01:16 +08:00
Calcitem d3a79d8e19 location 由32位改为8位并新建 location_t 类型 2019-09-29 00:15:48 +08:00
Calcitem fd0ce863b0 refactor: 新增 location 模块 2019-09-29 00:01:01 +08:00
Calcitem 7551dbb9e3 Game::update() 取消 inline 以解决 gcc-7.3 编译失败问题 2019-09-28 23:26:24 +08:00
Calcitem f125654427 refactor: 增加 countPieces 系列函数 2019-09-28 22:47:47 +08:00
Calcitem 6c4693cd73 book: 修改自动保存棋谱的日期时间格式为年月日时分秒 2019-09-28 13:09:41 +08:00
Calcitem dd669091a0 refactor: 新建 saveBook() 函数 2019-09-28 11:39:45 +08:00
Calcitem 9612c014cd refactor: Rename PHASE_NOTSTARTED to PHASE_READY 2019-09-28 11:08:24 +08:00
Calcitem a02cdd9778 rule: 配置 rule 时配置 maxStepsLedToDraw 和 maxTimeLedToLose 2019-09-28 11:06:18 +08:00
Calcitem d6574b0fcb refactor: 去掉成员变量结尾的下划线
第三方库不处理.
2019-09-28 10:48:19 +08:00
Calcitem 4b0569ea65 refactor: 增加 phase 的成员 2019-09-28 02:09:00 +08:00
Calcitem e0601e8fa0 refactor: 改写 getDepthTime 函数 2019-09-28 02:09:00 +08:00
Calcitem 9515b7c687 refactor: getElapsedTime() 减少参数 2019-09-28 02:09:00 +08:00
Calcitem c37fd4e37e position: Initialize some members 2019-09-27 23:56:54 +08:00
Calcitem cd6f8a6a77 refactor: 减少 setPosition() 的参数个数到3 2019-09-26 01:10:47 +08:00
Calcitem 0f6ae7163a refactor: 更改时间相关变量命名
将毫秒改为秒以对应之前的逻辑修改.
2019-09-26 00:58:43 +08:00
Calcitem 77881f817c refactor: 减少 time_p 传参 2019-09-26 00:41:46 +08:00
Calcitem 919d990517 refactor: currentRule 重命名为 rule 并减少函数传参 2019-09-26 00:10:12 +08:00
Calcitem f90c608b45 refactor: 将 currentRule 改为全局变量 2019-09-25 23:52:12 +08:00
Calcitem 3d2c2503b9 endgame: 默认关闭自学习残局库功能 2019-09-25 22:36:51 +08:00
Calcitem 5768c6db45 sln: Remove Qt5NetworkAuth.lib 2019-09-22 20:24:21 +08:00
CalciteM Team 39b2df094b endgame: 每次开局时保存残局库 2019-09-20 01:48:29 +08:00
CalciteM Team d65acac9a5 option: 新增残局库自学习的菜单并默认打开 2019-09-20 01:38:33 +08:00
CalciteM Team 75ea71b3ea option: RandomMoveEnabled 转移到 options 2019-09-20 01:38:33 +08:00
CalciteM Team 3fee6da533 option: 将 giveUpIfMostLose 转 到 options 2019-09-20 01:38:33 +08:00
CalciteM Team 08cd2d97bb gitignore: ignore compressed files etc. 2019-09-20 01:37:33 +08:00
CalciteM Team 5adaa2cc91 options: 新增 option 模块并将 auto restart 配置移到其中 2019-09-20 01:37:13 +08:00
CalciteM Team a2d6a222a0 ui: lcd: 比分位数改为4位 2019-09-19 23:24:27 +08:00
CalciteM Team 671882c760 endgame: 搜索到必胜值再加上层数且修复缺少 break 的问题 2019-09-18 00:39:28 +08:00
CalciteM Team cf2fdb360b endgame: 记录的阈值改为400并不需要勾选自动认输就可以启用 2019-09-17 23:44:31 +08:00
CalciteM Team c9ec23603a endgame: 以残局库代码取代开局库代码
* 目前残局库依赖于自动认输开启.
2019-09-17 23:13:25 +08:00
CalciteM Team c4ba910072 depth: 双方子力相差3时才从11层开始下降
原因是刚开始走棋时差对手3颗子还有翻盘的可能.
此修改对自对弈结果无影响.
2019-09-17 00:11:30 +08:00
CalciteM Team a85c707e2a depth: 调整摆棋深度并加入走棋阶段动态调整深度
* 摆棋阶段倒数第4着深度改回17, 为了避免走棋没多久就被闷杀;
* 行棋阶段当双方棋子数量较多时增加搜索深度;
* 行棋阶段如果双方子力相差悬殊则降低深度;
* VC 当使用 Debug 时将深度降低4层.

修改对自对弈的着法无影响, 耗时增加 1/3.
2019-09-16 01:05:15 +08:00
CalciteM Team 3e47a5963b depth: 去除深度相关的编译宏 2019-09-15 21:57:45 +08:00
CalciteM Team 0d931e4877 refactor: 简化部分函数和参数变量命名 2019-09-15 21:38:18 +08:00
CalciteM Team 4a6b8963f7 rootNode -> root 2019-09-15 20:23:37 +08:00
CalciteM Team 38fd3ef062 dummyGame -> tempGame 2019-09-15 19:31:52 +08:00
CalciteM Team 3cc120e8fc MillGameAi_ab -> AIAlgorithm 2019-09-15 19:18:33 +08:00
CalciteM Team 551bff5860 setContext -> setPosition 2019-09-15 19:03:29 +08:00
CalciteM Team 4cb10cf184 contextStack -> positionStack 2019-09-15 19:03:29 +08:00