I’ve added 50 to 90 ELO to MadChess, depending on the time control. I’ve finally broken the master barrier (2200 ELO)! I estimate MadChess’ playing strength is ~2200 ELO at blitz time control and ~2220 ELO at rapid time control.
Source code and EXEs available on the Downloads page.
- Added parameters to weaken engine strength (Score Error and Max Nodes Per Second), though I did not test them thoroughly.
- Calculate piece location score in evaluation instead of incrementally during move generation.
- Replaced yield-based move selectors with state-machine move selectors due to poor performance of iterators in recursive search algorithm.
- More aggressive late move reductions.
- Added multiple buckets per position cache key.
- Added draw detection for common endgames.
- Added penalty for own rook ahead of own passed pawn.
- Added command to test move generation.
- Eliminated personality parameter. Configure parameters in GUI and save as .uci file instead.
- Eliminated attacks list.
- Eliminated unneeded interfaces and abstract classes.