Commit Graph

38 Commits

Author SHA1 Message Date
Calcitem 4963e660e7 perfect: Include types.h 2021-01-20 00:16:59 +08:00
Calcitem f5c4a5f7d9 Fix some VC Code analysis issues 2021-01-03 02:24:07 +08:00
Calcitem 9722790eb8 class Phase add comments 2020-12-31 19:39:42 +08:00
Calcitem 90ca5f0e49 refactor: rules: Rename some val
Reference: Morris (Author: Dirk Farin)
2020-12-31 02:33:46 +08:00
Calcitem 0a0b7ab2a8 types: Rename Act to Action and change enum value 2020-12-30 02:14:04 +08:00
Calcitem 8831c0b607 types: Rename enum Action to enum class Act 2020-12-29 15:15:35 +08:00
Calcitem fb91ad3f8d types: GameOverReason 改为 enum class 2020-12-29 15:03:00 +08:00
Calcitem 44a26a83dd types: Change enum Phase to enum class 2020-12-29 11:56:20 +08:00
Calcitem 351421263f color_of() use constexpr instead of inline to fix build error 2020-12-20 12:25:25 +08:00
Calcitem 25375c3c50 type: ENABLE_INCR_OPERATORS_ON(MoveDirection) 2020-12-20 10:48:14 +08:00
Calcitem b886da6c96 bb: Update position.cpp/.h 2020-12-19 11:24:38 +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 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 9172c786d1 position: 修复 in_how_many_mills() 中 squareSelected 可能是 -1 导致读写越界1字节问题 2020-10-24 12:05:04 +08:00
Calcitem bd6396e459 build: 消除 make 编译警告 (GCC 10.2) 2020-10-24 01:34:29 +08:00
Calcitem 0408fa57fc Sync fishmill 2020-10-02 21:49:20 +08:00
Calcitem d6d8845e2a PIECE_NB 改为 64 以避免潜在的越界 2020-10-02 01:57:18 +08:00
Calcitem e384d99032 types: 不使用 abs() 函数 2020-09-24 01:55:13 +08:00
Calcitem e67f6ca8a1 types: 移除 Score 类型 2020-09-24 01:20:10 +08:00
Calcitem af062f0ebd types: 移除 Step 类型
原为 uint16_t, 改为 int。
2020-09-24 01:10:49 +08:00
Calcitem db7b742937 search: 新增 UCI::pv() 等一些 Stockfish 函数 2020-09-23 01:23:46 +08:00
Calcitem df58e02132 refactor: giveup 更名为 resign 2020-09-20 21:52:41 +08:00
Calcitem 7b5e1a2f2b 解决 in_how_many_mills() 中当 c 为 NOBODY 时逻辑错误的问题
提交 1d7ecd6680 对
in_how_many_mills() 函数的开头

if (player == PLAYER_NOBODY) {
	player = locationToPlayer(square);
}

修改为:

if (c == NOBODY) {
	c = Color(locationToColor(square) >> PLAYER_SHIFT);
}

不符合本意。导致 c 变成 NO_COLOR。

现在更正之。

并全面消除 PLAYER_SHIFT (4)

和修改前对战700盘,胜率误差6%,可认为对胜率无影响,并且对自对弈效率也无影响。
2020-09-20 20:46:44 +08:00
Calcitem 806b97d334 types: 新增 is_ok(Move m) 函数
顺带新增未完成的 Position::legal() 函数。
2020-09-19 23:38:47 +08:00
Calcitem 51e5f22f06 cmdlist 从 Position 移动到 GameController 里
已知问题:
棋谱中目前只加入走棋棋谱,其他的控制相关和状态相关的不见了。
2020-09-11 00:31:40 +08:00
Calcitem dd10fcb8d3 全面使用 file_of() 和 rank_of() 代替旧函数 2020-09-06 23:38:14 +08:00
Calcitem 81f5a5e5ce 改为使用确认OK的 make_square() 函数 2020-09-06 21:58:44 +08:00
Calcitem 926fe1ad86 tips: 将 setTips 转移到 GameController
已知问题:
人类走棋后未刷新 Tips,AI走后才刷新。
2020-09-05 22:23:06 +08:00
Calcitem 0a92670b60 hash: Key() 改为只返回 st->key
并优化 analyze 打印。
将 Fen/Key 打印转移到 Position 的 <<
2020-09-05 12:07:44 +08:00
Calcitem 6cf8d4c6fa tt: TTEntry 成员变量名带上比特位数 2020-09-01 23:49:12 +08:00
Calcitem ed5227041c position: 新增 count() 函数并应用 2020-08-31 23:38:23 +08:00
Calcitem 68fb9af5cd 新增 move_piece() 函数并使用
顺带新增一些有用的小函数。
position 成员函数 undo_move() 未完善。
2020-07-11 23:48:09 +08:00
Calcitem 60e753be3c 从 Stockfish 合并 uci/benchmark 等文件 2020-07-11 12:39:09 +08:00
Calcitem eb54f5b4db 使用 Piece 完全取代 Location 类型 2020-07-06 00:46:52 +08:00
Calcitem 32728dc13f refactor: 调整源码目录结构将其扁平化 2020-07-05 23:04:42 +08:00