I’ve added features to improve MadChess’ value as a sparring partner and analysis tool. I spent a lot of time implementing an algorithm that reduces the playing strength of MadChess. In chess GUIs that support the feature, MadChess will automatically adjust its playing strength to match the user. See the User Guide for details.
Source code and EXEs available on the Downloads page.
- Added UCI_LimitStrength and UCI_Elo options.
- Added chess personalities from young child to expert.
- Added MultiPV (display multiple principal variations).
- Enabled PVS search for MultiPV or when ScoreError > 0.
- Do not reduce search horizon of pawn pushes.
- Added bonus for trading material (when behind trade pawns, when ahead trade pieces).
- Added rook versus rook draw detection.
- Simplified killer move update logic.
- Added NodesLazyEvaluated statistic.
- Replaced many “if not continue” conditions with if conditions (to improve code readability).
- Eliminated all structs (converted to sealed classes with static methods).
- Eliminated uneccessary allocations (replaced with private class members).
- Eliminated SideToMove from UndoMove class.
- Eliminated PvsMinToHorizon UCI option.
- Added a logo.