sroelants / simbelmyne

A somewhat UCI compliant chess engine that could probably beat you.
GNU General Public License v3.0
17 stars 1 forks source link

Move "forced move" logic out of negamax #224

Closed sroelants closed 5 months ago

sroelants commented 5 months ago

In preparation of the lazy movepicker rewrite, we won't have easy access to the "number of moves", because we won't actually generate all of them. (e.g., it's hard to distinguish the scenarios where we play a TT move and it causes a cutoff (movepicker only knows about one move), or we've actually generated all the moves, and there's only one)

I'm seriously confused by this. How does this change make that big of a difference? Maybe double check that we didn't do an oopsie. But I don't think so?

Score of Simbelmyne vs simbelmyne-main: 385 - 307 - 477  [0.533] 1169
...      Simbelmyne playing White: 203 - 141 - 240  [0.553] 584
...      Simbelmyne playing Black: 182 - 166 - 237  [0.514] 585
...      White vs Black: 369 - 323 - 477  [0.520] 1169
Elo difference: 23.2 +/- 15.3, LOS: 99.8 %, DrawRatio: 40.8 %
SPRT: llr 2.99 (101.4%), lbound -2.94, ubound 2.94 - H1 was accepted