Commit Graph

1215 Commits

Author SHA1 Message Date
Calcitem 26984e3ae1 bb: Implement moveTableBB
Performance Test result:

After Modify put_piece()
depth + 4: 88859ms -> 86818ms, +2.3%
2020-12-20 11:27:13 +08:00
Calcitem 25375c3c50 type: ENABLE_INCR_OPERATORS_ON(MoveDirection) 2020-12-20 10:48:14 +08:00
Calcitem 9c66a3e60d bb: millTable use ~0U to improve performance 2020-12-20 10:34:23 +08:00
Calcitem 11ee391206 bb: Do not use popcount 2020-12-20 09:54:36 +08:00
Calcitem 0bcac7658d bb: Enable USE_POPCNT as default 2020-12-20 09:18:26 +08:00
Calcitem 542e3b528f bb: Implement bitboard logic
Disable as default.
2020-12-20 01:37:08 +08:00
Calcitem 9c3bd9d7f6 position: Remove onBoard[SQUARE_NB] 2020-12-19 11:31:30 +08:00
Calcitem b886da6c96 bb: Update position.cpp/.h 2020-12-19 11:24:38 +08:00
Calcitem 777a91520e bb: Rewrite bitboard.cpp and bitboard.h 2020-12-19 01:49:37 +08:00
Calcitem 511113e773 build: Fix ‘CHAR_BIT’ was not declared 2020-12-14 01:21:18 +08:00
Calcitem 892f9152cf Update copyright info 2020-12-14 01:11:43 +08:00
Calcitem 201c511d83 同步 Stockfish 最新的版本
合入的差异部分未 Stockfish
2020/5/8 的提交 66ed8b6c479932f1ec2274b5f567b5a6aecae0a4 到
2020/12/8 的提交 d706ae62d73d90c0f80cdccd58384a347295d549 的差异部分。

暂时未使用的代码不合并。
nnue 主体未合并。
main.cpp() 中 CommandLine::init(argc, argv); 未合并。
2020-12-13 23:55:44 +08:00
Calcitem 0663f3e9e9 sq 自增由 i=i+1 改为 ++i 2020-12-13 22:48:56 +08:00
Calcitem d8270658b0 flutter: 修复规则如规定不能吃三中的子但如果全部成三就吃不了的问题
引擎中是正确的,和引擎同步。
2020-12-13 21:47:15 +08:00
Calcitem 43ac139d90 flutter.yml: 修改当 Git 浅克隆时生成版本号的方式为依据编译编号或者日期
服务器只是浅克隆1层代码,有 GITHUB_RUN_NUMBER 的就依据此环境变量。
对于本地如果浅克隆,没有 GITHUB_RUN_NUMBER 的就依据编译日期。
2020-12-13 11:58:36 +08:00
Calcitem 9795f08fcd version.sh: 执行时修改 pubspec.yaml 的版本号
并且在 CI 编译 App 时执行 version.sh
2020-12-13 10:59:57 +08:00
Calcitem b5c89997a3 build: 解决 rule 模块 GCC 编译失败问题 2020-12-13 00:31:24 +08:00
Calcitem df68dafa8e position: 解决 QtUI 切规则后对弈异常问题
原因是之前提交引入的:
// TODO: Do not need to set again
    set_position(DEFAULT_RULE_NUMBER);

解决方案:
set_position() 部分分离到新函数 set_rule() 其余则补充到 reset()。
2020-12-12 23:05:54 +08:00
Calcitem 0ac61a94d0 flutter: 去掉 position 中冗余的 rule 成员变量 2020-12-12 22:18:34 +08:00
Calcitem 22adca36d5 rule: rule 不再使用指针形式 2020-12-12 22:18:34 +08:00
Calcitem 3ece8b3cc8 uci: 针对 Issue #80 添加代码注释
void position(Position *pos, istringstream &is)
添加一行 TODO 注释

// TODO: Stockfish does not have this
Threads.main()->us = pos->sideToMove;
2020-12-12 19:23:25 +08:00
Calcitem 60c5f4b63c uci: channel: szLineStr 更名为 line 2020-12-12 19:23:25 +08:00
Calcitem a0878fd000 flutter: pieceCountInHand 初始化由 12 改为 -1 2020-12-12 19:23:25 +08:00
Calcitem 3e1dedbf00 修正星点的判断方式为依据是否有斜线来判断 2020-12-12 19:23:17 +08:00
Calcitem 95bd0dcad6 flutter: Game.shared.position.rule 简化为 rule 并解决在 main menu 页面进入配置后配置规则失败的问题 2020-12-12 19:22:02 +08:00
Calcitem e4567cdf4e tests: 为 monkey.sh 增加 #!/bin/bash 2020-12-12 01:48:45 +08:00
Calcitem 73829527f1 flutter: 为联网测试功能加了菜单但功能未实现 2020-12-12 01:48:45 +08:00
Calcitem 72d4807ab7 TT: Key 由 64bit 降低到 32bit
Qt 内存占用由 535MB 下降到 275MB。
之前已经将哈希特殊 bit 位降低到2bit所以冲突概率显著降低。
因此降低到32bit可行。

实测和 64bit 对战近万盘,反而领先0.7%,在误差范围内。
自对弈24000盘左右,胜率差异0.3%左右,速度提升 7.5%。

R5950x 上测试,Release 版自对弈时长为 3640ms,Debug 为 10500ms。
(均未开动画和声音)

版本升级到 v0.12.0。
2020-12-12 01:26:40 +08:00
Calcitem 99816447c7 tests: 增加 Monkey 测试脚本范例
测试方法详见: https://www.cnblogs.com/miniren/p/4858788.html
adb 在 ~/AppData/Local/Android/Sdk/platform-tools
2020-12-07 23:38:29 +08:00
Calcitem 3049caff72 flutter & UCI: 增加棋规选项 (WIP) 2020-12-07 00:14:04 +08:00
Calcitem ddd9c22c17 flutter: 支持设置AI是否随机走子的选项
对于监听路由堆栈变化,为参考 https://www.cnblogs.com/mengqd/p/13683126.html
2020-12-06 22:03:09 +08:00
Calcitem 43842ab362 uci: 支持 setoption name RandomMove value true/false 命令设置AI是否随机走子
去掉原先使用宏控制的方式。
2020-12-06 20:23:33 +08:00
Calcitem fc429a9b47 flutter: 删除或修改部分打印 2020-12-06 19:07:24 +08:00
Calcitem e8dbe2e2d3 search: 增加对 Threads.stop 为 true 即受到 UCI 的 quit 或 stop 命令的处理 2020-12-06 16:33:04 +08:00
Calcitem 8ff5c10652 flutter: 临时解决从 AIvsAI 对战时页面返回后再进入触发异常的问题 (WAR)
增加对 context 是否为空的判断。

但根源是代码结构不合理以及对 dispose 的处理不完整。还需后续解决。
2020-12-06 16:31:56 +08:00
Calcitem 23aee21353 qt: 再次修复自对弈三次重复局面和判断失效的问题
06a3cf0668 误引入的问题。
2020-12-06 12:10:34 +08:00
Calcitem ce873f5339 CommandQueue: read/write 加锁保护 2020-12-05 21:46:09 +08:00
Calcitem 06a3cf0668 解决在 UCI_DO_BEST_MOVE 宏未启用时连续输入三次 go 就返回 bestmove draw 的问题
原先 eda027f975 未解决完整。
2020-12-05 17:25:19 +08:00
Calcitem 1a766ed96a flutter: 解决走棋阶段不能正确识别无路可走的情况 2020-12-05 12:11:58 +08:00
Calcitem a75619b8e5 flutter: 解决 potison fen moves 的 mvoes 生成结果有时带吃子着法的问题 2020-12-05 10:55:41 +08:00
Calcitem 5a93e0d194 flutter: checkGameOverCondition() 添加调试打印 2020-12-05 10:28:12 +08:00
Calcitem d424ca4e86 qt: gamecontroller 改名为 Game 2020-12-05 08:20:22 +08:00
Calcitem 4538b6a6d9 flutter: 如果是AI对战AI则用显示比分取代正在思考的提示 2020-12-02 01:20:48 +08:00
Calcitem ea492d8083 flutter: 使用临时方法处理fen moves 中出现重复着法的问题
对于 https://github.com/calcitem/Sanmill/issues/64
出现重复着法时由触发 assert 改为 return。

此问题根源待查明。
2020-12-02 01:13:54 +08:00
Calcitem a8416d8eff flutter: 支持AI对战时棋局结束时自动重新开局
顺带增加其他一些配置项但暂未实现控制逻辑。
2020-12-02 01:08:23 +08:00
Calcitem fc796a7a27 flutter: 修改 moves 中未 remove 类型的判断方式即改为文本判断 2020-11-30 01:06:36 +08:00
Calcitem ef06033e16 flutter: 解决 score 经常被清空的问题 2020-11-30 01:05:38 +08:00
Calcitem e9a4d80918 flutter: 实现双人对战和机器对战 2020-11-30 00:21:04 +08:00
Calcitem 0e0540ecf5 flutter: 重构 showTips() 2020-11-29 23:53:45 +08:00
Calcitem e6c3122e4c flutter: 修正人类执白时提示人类是否输赢与实际相反的问题 2020-11-29 23:44:51 +08:00