fabianvdW / FabChess

UCI compliant chess engine written in Rust
BSD 3-Clause "New" or "Revised" License
30 stars 6 forks source link

Change the nmp condition to correctly use available tt information #71

Closed fabianvdW closed 3 years ago

fabianvdW commented 3 years ago

We now correctly use information in the TT when checking if we want to try a null move. That is: -If the TT contains a lower bound or an exact bound and tt score >= beta : We try the null move -If the TT contains an upper bound or an exact bound and tt score < beta: We don't try the null move -In all other cases: We check if static eval > beta. Passed regression tests at OpenBench: ELO | 7.08 +- 5.14 (95%) SPRT | 10.0+0.1s Threads=1 Hash=8MB LLR | 2.99 (-2.94, 2.94) [0.00, 5.00] Games | N: 10068 W: 2992 L: 2787 D: 4289 http://chess.grantnet.us/test/7407/

ELO | 9.76 +- 6.10 (95%) SPRT | 60.0+0.6s Threads=1 Hash=64MB LLR | 2.96 (-2.94, 2.94) [0.00, 5.00] Games | N: 5876 W: 1471 L: 1306 D: 3099 http://chess.grantnet.us/test/7408/