Closed unserializable closed 3 years ago
The code section in static evaluation where the 3 piece material draws are detected (KBK, KNK) is already present in static evaluation function and the terms are easy to add without introducing any new conditionals.
Done and tested positively against SF9 & Ethereal 12.75 & Rustic Alpha 1.
This most probably adds some rather minor ELO too, running some selfplay games for that later.
+8059 -7831 =4110
Rank Name Elo + - games score oppo. draws LOS
1 Monchester 1.0.1-14-g84db4ed 2 4 4 20000 51% -2 21% 97
2 Monchester 1.0 -2 4 4 20000 49% 2 21% 2
One of the annoyances with Monchester 1.0 is that it's narrow fixed 4-depth search without quiescence with added randomization is fine enough to play scholastic level threats and blunders in opening and middlegame, but the endgames suck with such narrow depth and are much more random and dumb than scholastic.
So, providing bit more instructive behaviour without increasing the search depth anywhere (as the 1.0 is planned to remain essentially constant-strength engine), add the evaluation terms for endgames with sole king against king and major piece -- these should be consistently won. Randomization helps, but has loads of trouble when weaker king starts and remains in the middle of the board. And vice-versa, if engine is playing the weaker side, it should not run towards the last files and ranks but provide resistance by trying to remain centralized.