Calcitem
|
0f89043a8e
|
删除无用的 location.cpp/h
|
2020-06-26 18:04:23 +08:00 |
Calcitem
|
3e47540613
|
refactor: Rename Line/Move direction and Piece
|
2020-06-07 20:50:20 +08:00 |
Calcitem
|
cd3b0e9aba
|
MAX_MOVES 由 40 上调到 64
满足飞子的要求。
理论值尚未推算。
|
2020-06-07 10:43:26 +08:00 |
Calcitem
|
675e439f81
|
refactor: Rename forbidden to banned
|
2020-06-03 00:30:40 +08:00 |
Calcitem
|
cdc14e5ec6
|
OpeningBook: Fix build error
|
2020-05-26 01:28:26 +08:00 |
Calcitem
|
4792cc89ef
|
types: Refactor: Rename val to like Stockfish
|
2020-05-17 11:58:05 +08:00 |
Calcitem
|
f243e537cd
|
hashmap: Replace hash_t to hashFn
|
2020-05-16 02:18:43 +08:00 |
Calcitem
|
68b89788fd
|
bb: Fix buffer overflow
|
2020-05-16 02:16:00 +08:00 |
Calcitem
|
333641845a
|
replace key_t to hash_t to fix GCC build error
|
2020-05-16 02:16:00 +08:00 |
Calcitem
|
92c65f3c2d
|
movegen: refactor: 函数重命名
|
2020-05-13 01:45:45 +08:00 |
Calcitem
|
f8bae1b167
|
Evaluation: refactor: 重命名函数
|
2020-05-13 01:36:34 +08:00 |
Calcitem
|
92991c4cb3
|
tt: refactor: 重命名变量
|
2020-05-13 01:29:40 +08:00 |
Calcitem
|
b69de7f09a
|
TT: 增加 TRANSPOSITION_TABLE_FAKE_CLEAN_NOT_EXACT_ONLY 宏但不启用
开启后,对于确切值的TT值,开始新的搜索前不会清除。
|
2020-05-13 00:46:36 +08:00 |
Calcitem
|
ca67ed76f1
|
bb: 给 byTypeBB 赋值
此外:
piecetype_t 枚举成员名称更换
setPosition() 函数减少参数
|
2020-05-12 02:09:06 +08:00 |
Calcitem
|
585cdb7b36
|
analyze: 控制台输出棋局分析结果
|
2020-05-11 01:13:35 +08:00 |
Calcitem
|
80bbec96a7
|
refactor: 部分变量和类型改名
启用 ring_t 和 seat_t
capture -> removePiece
choose -> selectPiece
|
2020-05-10 23:45:02 +08:00 |
Calcitem
|
71fa68b67d
|
简化 hash_t Position::getNextMainHash(move_t m) 函数
|
2020-05-10 21:39:04 +08:00 |
Calcitem
|
3ac8c4e77d
|
type: 新增 type_of(m) 函数并使用
|
2020-05-10 21:34:53 +08:00 |
Calcitem
|
4057808fa5
|
未使用 locationToPlayer() 的地方进行使用
|
2020-05-10 20:16:44 +08:00 |
Calcitem
|
06f1e3000e
|
type: 新增 make_move() 并使用
|
2020-05-10 20:01:11 +08:00 |
Calcitem
|
f86bbec6a4
|
删除多余的 Position::generateNullMove()
|
2020-05-10 19:50:47 +08:00 |
Calcitem
|
c93d7222ce
|
type: 完成 from_sq() 和 to_sq() 函数并应用
并增加部分 bitboard 代码 (未完成)。
|
2020-05-10 10:02:35 +08:00 |
Calcitem
|
8177fc40be
|
Add Codacy badge
|
2020-05-10 00:35:25 +08:00 |
Calcitem
|
a334e7ee8d
|
refactor: 清理代码
包括暂时删除 MCTS 大部分代码。
后续再加回来。
|
2020-05-10 00:35:25 +08:00 |
Calcitem
|
08b07c0de8
|
Position::checkGameOverCondition 增加参数控制是否写入 cmdlist
|
2020-05-10 00:35:25 +08:00 |
Calcitem
|
fa0e0b4b33
|
ai: 参考 stockfish 修改 fail-safe search 代码
调用的 TT 部分也被修改
|
2020-05-10 00:35:25 +08:00 |
Calcitem
|
0232de6684
|
refactor: 重命名部分变量
|
2020-05-10 00:35:25 +08:00 |
Calcitem
|
1114906434
|
WAR: 临时处理内存泄漏最大的泄漏点
|
2020-05-10 00:35:25 +08:00 |
Calcitem
|
6399e03a36
|
ai: 搜索时不再生成结点而是遍历着法数组即可
修改后,即便是关闭预取,也能提速 15%。
|
2020-05-10 00:35:25 +08:00 |
Calcitem
|
b8cd08e204
|
消除编译警告
并且万一找不到最佳 move 也不会触发 assert
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
3fbca61f76
|
解决一局比赛完成或者运行到一半退出时报告 Position 析构过程中 string 析构出错的问题
原因暂不明确,先用此方式规避。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
3b40e4b0d6
|
将tips从Position中提出来作为全局变量
以解决运行到一半疑似对tips重复释放导致崩溃的问题。
目前原因不明。不过tips迟早是要提取出来的。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
f864c7bbc4
|
refactor: 将 StateInfo 中大多数成员转移到 Position 类中
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
0f9ae19661
|
nullmove: 增加部分空着裁剪代码 (WIP)
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
456613e750
|
pvs: 因单纯开 MTD(f) 略快故关闭 PVS 搜索
depth + 4 自对弈时长统计结果:
Alpha-Beta Only: 186.062s
PVS (win=1): 144s
PVS (win=5): 137s
MTDF (win=1): 126s
PVS + MTDF (win=5): 95s
MTDF (win=5): 93s 最快
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
e4973ce2d9
|
mtdf/pvs: 启用MTD(f) 并把 PVS 和 MTD(f) 的窗口由极小窗口1调整为5
即调整为一个棋子的价值。
修改后,自对弈棋谱不变,自对弈时长由8s缩短到6s以内。
深度+4 测算,耗时缩短到原来的 69%。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
02380b64bd
|
pvs: PVS 相关代码用宏控制
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
335b218d85
|
mtdf: Support MTD(f)
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
bb50055fda
|
fs: 实现 超出边界(Fail-Soft) 的 Alpha-Beta 搜索
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
f41c338e29
|
movegen: 解决走子阶段优先成三时的逻辑错误
原来为走子之前的统计故走棋阶段可能会从 @-0-@ 走成 0-@-@, 并未成三,
这就可能造成未选择最佳着法,甚至可能导致赢棋变成和棋。
例如上个提交的自对弈结果就是和棋。
自对弈时长下降到 8s,时长缩短20%。
自对弈棋谱变化,最后一着 (-3,4) 白方胜。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
67bfcab176
|
refactor: 新增 deletSubTree() 接口并使用
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
36daf7bb4f
|
depth: 白方第4步深度上调到18
顺带将 ai.ttMove 修正为 ai.nextMove()
并且多加了几个 nodeCompare 的 策略但未启用。
自对弈时长 10s 多。对比2000盘自对弈结果,速度为修改前的90%。
自对弈棋谱改变,最后一着为 (2,7)->(2,6) 三次重复局面和棋。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
4013b5bb7f
|
openingbook: 新增开局库部分代码 (未完成)
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
79c10960c8
|
hh: 实现历史启发
实测效果不明显,暂不启用
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
327f3fb28d
|
新建游戏时的保存棋谱会在文件名记录哪方获胜
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
76ce98e37b
|
nodeCompare 时只比较 rating 而不再比较 value
对战2000盘,提速3.4%, 和修改前自对弈,胜率误差0.2%以内。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
8d844cd919
|
BEST_MOVE_ENABLE 改为 TT_MOVE_ENABLE 并完善部分代码 (未完成)
目前在开启后,700盘自对弈显示速度为关闭时的 96.5%,
和关闭时对战600盘,胜率相差 0.8% 左右,可以认为相当。
暂未开启此宏。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
2e10e9d380
|
解决开 BEST_MOVE_ENABLE 宏后编译不通过的问题
BEST_MOVE_ENABLE 宏相关代码尚未完善。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
e3e7c11f26
|
在关键路径上去除不必要的变量初始化
自对弈4000盘,提升速度8%左右。
|
2020-05-10 00:26:39 +08:00 |
Calcitem
|
9d715fc6a0
|
ui: 界面上显示总盘数
|
2020-05-10 00:26:39 +08:00 |