Calcitem
|
2cf8228e4e
|
AI: 将 Game tempGame 更换为 Game *tempGame
|
2020-01-29 13:38:17 +08:00 |
Calcitem
|
6d84c2ff59
|
AI: Game game 改为 Game *game
|
2020-01-29 10:03:09 +08:00 |
Calcitem
|
77a1e6bfa7
|
stack: arr 改为从堆上分配
加4级depth后,自对弈时长由 1434s 增长到 1477s,
耗时增加 3%。
|
2020-01-29 08:13:10 +08:00 |
Calcitem
|
0012998cb6
|
将 Game 类中的 position 改为堆上分配
depth 增加 4,测试结果:
修改前:1429s,修改后: 1434s
耗时增加 0.35%。
|
2020-01-29 08:12:51 +08:00 |
Calcitem
|
1bb489d5f0
|
about: 修正URL并将程序名改为直棋
|
2020-01-25 09:48:23 +08:00 |
Calcitem
|
f2e4f00a5a
|
ai: tt: 完全去除 bestMove 相关参数
内存占用由 409M 缩小到 285M。
自对弈时长几乎无变化。
|
2020-01-25 09:41:48 +08:00 |
Calcitem
|
9e206cf972
|
ai: addNode中去除判断move和bestMove相等则结点rating值大增的逻辑
本意是想当这个结点的走法和最佳走法相同时则排在前面,实测和不加这个机制的
程序各自执黑对战9000盘左右,胜率差距在0.25%,可以认为无差异。
为了后续简化 addNode 函数的需要,故去除。
|
2020-01-22 00:59:55 +08:00 |
Calcitem
|
15db0c4ad1
|
movegen: refactor: MoveList::generate 的 node 参数重命名为 parent
|
2020-01-07 23:19:19 +08:00 |
Calcitem
|
182a3441d3
|
ai: refactor: 减少 addNode() 中的嵌套层级
|
2020-01-05 00:24:34 +08:00 |
Calcitem
|
96faa13dcd
|
ai: Node 类中增加 hasChildren() 以及 moves(暂未使用)
|
2020-01-04 23:56:13 +08:00 |
Calcitem
|
c714d0f6b9
|
ai: refactor: 将 Node 由结构体改为类并从 AIAlgorithm 类中提取出到外部
|
2020-01-04 23:24:14 +08:00 |
Calcitem
|
bdf1846bde
|
ai: refactor: 新增 stashPosition() 函数
|
2020-01-04 22:43:05 +08:00 |
Calcitem
|
5bdc5dff65
|
endgame: 重新开局时如果下过的总盘数为0或者不是256的倍数就不记录到文件
不符合这个条件,就在程序退出时才记录;
之前是 TEST_MODE 宏开启才规定符合256的倍数就不记录,现在是不开启也是如此。
|
2019-12-23 00:28:11 +08:00 |
Calcitem
|
4504801dc6
|
endgame: 若开启 ENDGAME_LEARNING_FORCE 宏,则不需要勾选菜单,就能生效残局库功能;
|
2019-12-23 00:26:02 +08:00 |
Calcitem
|
fd19649281
|
endgame: 实现了多个(暂定12个)残局库文件合并的代码
|
2019-12-22 01:01:51 +08:00 |
Calcitem
|
ca6189c4fe
|
hash: 修复 stat() 统计哈希表项个数多除以8的问题
|
2019-12-22 01:00:49 +08:00 |
Calcitem
|
cbad48290d
|
endgame: 记录到残局库时打印更详细的信息包括地址偏移和必然胜负的一方是谁
|
2019-12-21 22:34:28 +08:00 |
Calcitem
|
1ae1c9b584
|
endgame: endgame_t 由8位长度改为32位因对缩小残局库文件体积无帮助
为调试方便,修改长度。
|
2019-12-21 22:33:11 +08:00 |
Calcitem
|
75907bd77a
|
hashmap: 从文件加载到哈希表后打印哈希表已占条目数和总条目数
|
2019-12-21 14:20:37 +08:00 |
Calcitem
|
d43a49012d
|
endgame: test: Test模式下每256盘才将残局库保存到文件一次
|
2019-12-21 09:06:50 +08:00 |
Calcitem
|
3b6dcf6b96
|
game 类增加 nPlayed 成员变量用于统计总盘数
|
2019-12-21 02:21:00 +08:00 |
Calcitem
|
afcba4b5bc
|
endgame: 菜单中勾选残局自学习时载入现有的残局库
之前是 Game 类初始化时载入,如果菜单没勾选,就不会载入,每次都
存新的内容,产生了覆盖。现解决之。
|
2019-12-21 01:36:06 +08:00 |
Calcitem
|
4787c97237
|
endgame: 解决开 ENDGAME_LEARNING 宏后因 options 未改名而编译错误的问题
|
2019-12-20 22:07:57 +08:00 |
Calcitem
|
6de21f0a60
|
depth: 摆棋阶段下调第2着的深度由10变为9
之前通过提交 c7fbc4b1bc
上调第2着的深度由9变为10, 以当黑方走形如21->29时白方
不会连续走两次星点造成被动.
但深度为9时,胜率高于深度为10. 具体如下:
修改后执黑,修改前执白
4229 2886 322
56.86% 38.80% 4.32%
修改前执白,修改后执黑
2831 4150 250
39.15% 57.39% 3.45%
故回顾此项修改,重新调整回9.
|
2019-12-19 00:50:03 +08:00 |
Calcitem
|
a067ccf0fd
|
mcts: 补充 cpp 文件
启用 UCT_DEMO 宏时可以运行一个四子棋程序。
只是添加四子棋 demo, 暂未和原有 AI 结合。
|
2019-12-15 23:58:19 +08:00 |
Calcitem
|
a7fad6a693
|
点击新建游戏按钮时如果双方总共已经下12步以上则算负
原来是进入走棋阶段就算负,现在调整为摆棋阶段12步以上就算负
|
2019-12-15 12:53:42 +08:00 |
Calcitem
|
d5588e0ed3
|
AI: Add mcts.h
来源:
2bebd4320a/mcts.h
只新增文件,暂未应用
|
2019-12-14 22:27:18 +08:00 |
Calcitem
|
51e723fc4e
|
refactor: 新建 getAppFileName() 函数并使用
|
2019-12-14 20:12:12 +08:00 |
Calcitem
|
533c3e2d49
|
新增 TEST_MODE 宏
开启时,启动后进入对引擎对战友好的默认配置
|
2019-12-14 01:48:07 +08:00 |
Calcitem
|
fb8c91eed9
|
UI: 标题栏显示程序文件名(含路径)和 PID
|
2019-12-13 00:36:22 +08:00 |
Calcitem
|
670fdbcd39
|
Test: 增加共享内存的 key 到16个
|
2019-12-12 23:41:25 +08:00 |
Calcitem
|
c594cd908c
|
每次新建游戏时也保存得分和胜率到文件
|
2019-12-11 00:02:11 +08:00 |
Calcitem
|
08815c06d1
|
test: 共享内存增加1个 key: MillGame-Key-2
|
2019-12-10 23:06:12 +08:00 |
Calcitem
|
9e4510a589
|
evaluate: 将走子阶段 Need Remove 的分值由6下调到5即和摆子阶段分值一致
黑方比白方多的胜率从 21.26% 扩大到 28.93%,扩大了 7.67%;
白方比黑方少的胜率从 21.26% 缩小到 6.63%,缩小了 14.63%。
改进后和改进前对战:53.85% 比 42.70% 多 11.15%
(62.71% + 44.99%) / 2 = 53.85%
(51.62% + 33.78%) / 2 = 42.70%
改进前自对弈结果:
Sum 11333
Black 6677 58.92%
White 4268 37.66%
Draw 388 3.42%
改进后和改进前对战:
改进后执黑,改进前执白:
Sum 6997
Black 4388 62.71% (+3.79%)
White 2364 33.78% (-3.88%)
Draw 245 3.50% (+0.08%)
改进前执黑,改进后执白:
Sum 6623
Black 3419 51.62% (-7.30%)
White 2980 44.99% (+7.33%)
Draw 224 3.38% (-0.04%)
|
2019-12-10 00:17:09 +08:00 |
Calcitem
|
1f8a7fa485
|
Add Auto change 1st move (WIP)
功能未完成
|
2019-12-09 02:17:14 +08:00 |
Calcitem
|
0b4366b289
|
UI: 界面上增加胜率显示 (万分之几)
|
2019-12-08 19:46:52 +08:00 |
Calcitem
|
ce6d9c2f2f
|
Revert "Board: 简化 = 重载符函数"
This reverts commit be8b1d4baa .
|
2019-12-08 14:42:50 +08:00 |
Calcitem
|
502fc471de
|
Test: 增加进程对战配置窗口可用于配置共享内存的 key
|
2019-12-08 14:40:10 +08:00 |
Calcitem
|
cc2d80660e
|
Test: 增加引擎对战模式的选项
暂未添加图片;
选中后若双方都是AI会卡死,暂未处理。
|
2019-12-08 12:11:03 +08:00 |
Calcitem
|
c584ed6769
|
自动重新开局时保存分数和胜率比值到文件中
|
2019-12-08 11:32:13 +08:00 |
Calcitem
|
3182eff1ad
|
test: 新增测试模块用于本地对战
使用共享内存实现,效率比 socket 高。
打开 TEST_MODE 宏才能生效。
|
2019-12-08 02:28:24 +08:00 |
Calcitem
|
be8b1d4baa
|
Board: 简化 = 重载符函数
* 删除自己赋值给自己的判断
* 删除 millList 的复制,只保留 locations 的复制
|
2019-12-07 00:49:37 +08:00 |
Calcitem
|
23cb1f4e91
|
addMills() 中减少 iter 重复赋值
|
2019-12-06 00:19:33 +08:00 |
Calcitem
|
0498c5ebc7
|
ai: NODE_CHILDREN_SIZE 由 64 下调到 40
按 4 * 4 + 3 * 4 * 2 计算
|
2019-12-05 23:16:12 +08:00 |
Calcitem
|
4c258d5391
|
search: 最后记录不一定确切的哈希值时省略对 node->children[0] 是否非 null 的判断
|
2019-12-05 00:55:35 +08:00 |
Calcitem
|
39274bb704
|
refactor: search: minmax 计算部分由 if 改 switch
|
2019-12-05 00:47:44 +08:00 |
Calcitem
|
578070d8f4
|
search: 将搜索到决胜局面与搜索第0层或需要退出合在一起处理
|
2019-12-05 00:40:03 +08:00 |
Calcitem
|
4c007940c9
|
evaluate: 补充 getValue() 中的 else if
|
2019-12-05 00:33:53 +08:00 |
Calcitem
|
526060e812
|
search: 搜索到第0层或需要退出时不再根据深度调整 value
搜索到第0层,深度肯定是0.
|
2019-12-05 00:25:18 +08:00 |
Calcitem
|
4ce85299db
|
refactor: probeHash() 中 if 换 switch
|
2019-12-05 00:17:08 +08:00 |