Commit Graph

733 Commits

Author SHA1 Message Date
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
Calcitem 5d658460a7 refactor: 简化 getHash() 2019-12-05 00:07:47 +08:00
Calcitem e0a017dbfe setGame() 中使用 memset 取代 root 的逐项赋值 2019-12-05 00:03:30 +08:00
Calcitem 99a18af8ce search: 删除 deleteTree() 中不必要的判断 2019-12-04 23:53:52 +08:00
Calcitem 42f774548a refactor: gamecontroller: Add thread functions 2019-12-01 22:40:52 +08:00
Calcitem f86c4585ad refactor calcXXX 函数重命名为 searchXXX 函数 2019-12-01 22:40:27 +08:00
CalciteM d7926aca9d thread: Add thread.cpp/h from Stockfish
暂时未用
2019-12-01 22:39:45 +08:00
CalciteM 1c03f00833 refactor: rename thread.* to aithread.* 2019-11-30 12:49:23 +08:00
Calcitem 9ac06bf94d movegen: 计算对手延迟到吃子再进行 2019-11-24 01:57:05 +08:00
Calcitem 4380566fa8 movegen: 去除开头'如果有子节点,则返回,避免重复建立'的判断 2019-11-24 01:52:26 +08:00
Calcitem 0562672ed0 refactor: MOVE_PRIORITY_TABLE_SIZE 改为类静态成员变量 2019-11-24 01:40:08 +08:00
Calcitem d07d575474 refactor: addNode() 移除 side 参数 2019-11-24 01:28:15 +08:00
Calcitem 03069e2bf2 debug: Window: 当编译为Debug时固定窗口大小
方便双显示器上下排列时的显示.
2019-11-23 23:27:26 +08:00
Calcitem eec33160fb build: Fix build error on non-x86 2019-11-18 01:30:09 +08:00
Calcitem 127b5b95b2 refactor: options 改名为 gameOptions 2019-11-18 00:48:11 +08:00
Calcitem 929d62e7ce log: Fix build warning 2019-11-18 00:37:53 +08:00
Calcitem 652ee7ce0d hash: 将其他的64位定义改为由参数决定 (2) 2019-11-18 00:37:30 +08:00
Calcitem da6696448e sort: Remove compiling warnings
* size_t -> int
* Remove some functions
2019-11-18 00:30:39 +08:00
Calcitem 6126e883a2 .gitignore: Add *.diagsession 2019-11-17 23:32:33 +08:00
Calcitem d55bc8e723 hash: 将其他的64位定义改为由参数决定 2019-11-16 22:14:28 +08:00
Calcitem 9c2b406d9b refactor: 重构 board.cpp 以略微提升性能 2019-11-16 12:31:05 +08:00