Commit Graph

945 Commits

Author SHA1 Message Date
Calcitem 4e50c2deca MovePicker::score() 中不再使用 them 成员变量
并且将 pos 直接访问成员变量改为通过函数
2020-09-29 18:58:21 +08:00
Calcitem 051085beb9 config.h: PREFETCH_SUPPORT 宏改名为 DISABLE_PREFETCH
并反向宏控制。
2020-09-29 18:39:37 +08:00
Calcitem 63784b2995 config.h: 删除无用的 COMPARE_RATING_ONLY 宏 2020-09-29 18:36:11 +08:00
Calcitem 16d472ce43 config.h: 删除无用的 DEBUG_MODE_A 和 RANDOM_MOVE 宏 2020-09-29 18:34:16 +08:00
Calcitem 9cf8c7718a 删除残留的 ALPHABETA_AI 宏
并且把 SORT_MOVE_WITHT_HUMAN_KNOWLEDGES 改名为 SORT_MOVE_WITHOUT_HUMAN_KNOWLEDGES
并反向宏控制。
2020-09-29 18:30:57 +08:00
Calcitem c68c81ac40 Evaluation::value() 直接调用 pos 的成员变量改为调用函数 2020-09-29 18:06:02 +08:00
Calcitem 5eaff47045 move_piece: select/put 简化为调用 move_piece(f1, r1, f2, r2) 2020-09-29 18:04:31 +08:00
Calcitem 8b7786dda9 rule: 移除 "九连棋"
所有规则均允许在相同位置相同序号的三连重复提子。
2020-09-29 10:18:09 +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 c921bafbf6 misc.h: 清理多余代码 2020-09-24 00:34:49 +08:00
Calcitem fea8b8af4e search: 清理部分多余代码 2020-09-24 00:01:33 +08:00
Calcitem f5e454f350 search: 新增 Stockfish 的 Thread::search() 函数
暂未调用下一级搜索函数。
2020-09-23 01:40:48 +08:00
Calcitem db7b742937 search: 新增 UCI::pv() 等一些 Stockfish 函数 2020-09-23 01:23:46 +08:00
Calcitem 29bfdbdd39 添加了新的 Stack 类但暂未使用 2020-09-23 00:51:03 +08:00
Calcitem f44d6d2fd4 position: 增加几个 undo 函数声明但暂未完成编码实现 2020-09-23 00:30:11 +08:00
Calcitem 415dafd47d search: StateInfo st 前移到开头声明 2020-09-23 00:14:55 +08:00
Calcitem efd6b44bdb position: 统一在 do_move() 中递增 gamePly 等值 2020-09-23 00:14:16 +08:00
Calcitem 391e5e1a83 position: refactor put_piece() 2020-09-20 23:38:14 +08:00
Calcitem 106d9f9cce MCTS: 移除完 MCTS 相关代码 2020-09-20 23:04:22 +08:00
Calcitem a3854b94fb position: 新增 set_gameover() 函数并使用 2020-09-20 22:54:46 +08:00
Calcitem df58e02132 refactor: giveup 更名为 resign 2020-09-20 21:52:41 +08:00
Calcitem ae4c8a8b36 check_gameover_condition: 当无子可走时不时都定为游戏结束而是先看规则 2020-09-20 21:28:42 +08:00
Calcitem b88af2f95f rule: 更名为 isLoseButNotChangeSideWhenNoWay 2020-09-20 21:26:25 +08:00
Calcitem bab6472ff2 position: xxx_side_to_move 改为 inline 2020-09-20 21:16:17 +08:00
Calcitem bd4d69a159 position: refactor: 更名为 remove_ban_stones() 并且执行前需判断规则
此函数内部对规则的判断改为 assert。
2020-09-20 21:10:43 +08:00
Calcitem 346fa2dfb9 remove_piece: 将少于2子的判断重新移动到 board 变更之后
以解决 962cece2c5 引入的最终棋盘上
还没到去掉倒数第3子就结束对局的问题。
2020-09-20 20:58:23 +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 51d8f7ed8c update_score() 提取到 xxx_piece(File f, Rank r) 函数执行 2020-09-20 17:48:14 +08:00
Calcitem cb1cba741c position: 去掉 set_position() 和 reset() 中多余的 update_score() 2020-09-20 17:20:28 +08:00
Calcitem c4be5d3da9 将 check_gameover_condition() 中对于对方是否总子数少于3的判断转移到 remove_piece() 中 2020-09-20 16:59:14 +08:00
Calcitem 6173894f20 rule: 去掉计时规则相关代码 2020-09-20 16:52:48 +08:00
Calcitem 962cece2c5 remove_piece: 将更新棋盘上棋子数以及检查游戏结束条件的语句提前
提前到判断 false 条件之后马上进行,更新 hash 值之前。
2020-09-20 16:39:53 +08:00
Calcitem e0ed37a13e position: do_move() 中统一使用 to_sq() 2020-09-20 16:26:23 +08:00
Calcitem 76091ff4e2 position: 消除部分 warning
微调语句顺序
2020-09-20 16:24:16 +08:00
Calcitem d09cbd54bc position: 更多使用 file_of(s) 和 rank_of(s) 2020-09-20 16:12:48 +08:00
Calcitem a45a8006e5 position: do_move() 中统一执行 move = m 操作 2020-09-20 15:56:07 +08:00
Calcitem 806b97d334 types: 新增 is_ok(Move m) 函数
顺带新增未完成的 Position::legal() 函数。
2020-09-19 23:38:47 +08:00
Calcitem b0e01f64b4 position: 删除 Position& Position::set(const string& code, Color c, StateInfo* si) 函数
TB 才用到,故删除。
2020-09-19 23:12:27 +08:00
Calcitem e1f066bbfc position: 基本完成 set 函数
put_piece() 因接口还未适配完成故暂不调用。
2020-09-19 23:05:41 +08:00
Calcitem 1e29418e2c check_gameover_condition: 改为参数个数为0
去掉 updateCmdlist 参数。
2020-09-13 00:38:09 +08:00
Calcitem 2640999584 check_gameover_condition(): Clear code 2020-09-13 00:23:17 +08:00
Calcitem 3945ab0383 refactor: 重构 put_piece() 2020-09-12 23:15:06 +08:00
Calcitem c2ee2e9c53 移除 cmdline 中的时间戳而只保留着法 2020-09-12 21:48:21 +08:00
Calcitem 0255584385 cmdlist 插入状态相关行时在命令行打印 2020-09-12 20:15:14 +08:00
Calcitem 81b202babe 大部分 sprintf 转移到 gameController
解决 cmdlist 移走到 gameController 后控制相关和状态相在 cmdlist
不见的问题。

目前自对弈耗时由5800ms左右缩减到5300ms左右。
2020-09-12 11:31:17 +08:00
Calcitem 26eb01e259 WAR: 临时性解决点击棋谱后无反应的问题
因为 cmdlist 移动框 gameController 后,每次重新开局被清空后
就没有首行的 s2... 了,临时解决方式是先备份这一行,清空后再
插回去。
2020-09-11 00:32:32 +08:00
Calcitem 51e5f22f06 cmdlist 从 Position 移动到 GameController 里
已知问题:
棋谱中目前只加入走棋棋谱,其他的控制相关和状态相关的不见了。
2020-09-11 00:31:40 +08:00
Calcitem dbc1e56dc3 position: refactor remove_piece() 2020-09-08 02:01:04 +08:00