MadChess

Home * Engines * MadChess

[ Me Worry? [1] MadChess,

an UCI compliant open source chess engine by Erik Madsen, written in C# to run under the Windows .NET framework. It was first released under the GNU General Public License Version 3 as successor of Erik’s former C# engine RumbleMinze in October 2012 [2], and features adjustable playing strength with improved algorithms since MadChess 1.4 [3] [4]. MadChess 2.1, released in February 2017 is using .NET Core, Microsoft’s cross-platform free and open-source managed software framework to support not only Windows, but Linux, and Mac [5] [6].

Move Generation

MadChess applies an incremental move generation, using the C# yield statement [7] [8] [9] [10] [11] using incrementally updated list of attackers for any rank, file, diagonal, or anti-diagonal.

MadChess performs a principal variation search along with transposition table, killer and history heuristic, null move pruning and late move reductions inside an iterative deepening framework with aspiration. It eliminates all reductions and lazy evaluation along the principal variation.

Evaluation

The evaluation might be lazy with respect to bounds, and otherwise uses a tapered evaluation on game phase between speculative computed middlegame and endgame scores, considering piece-square tables, mobility, pawn structure, and king safety and various piece evaluation terms.

See also

Forum Posts

2012

2013

2014

2015 …

2020 …

Blog Posts

Chess Engine

MadChess - User Guide

Misc

References

  1. A postcard with the public domainme worry?” face that later inspired Mad magazine’s Alfred E. Neuman, ca. 1910s, Alfred E. Neuman from Wikipedia
  2. MadChess 1.0 Released (C# .NET Engine) by Erik Madsen, CCC, October 25, 2012
  3. MadChess UCI_LimitStrength Algorithm by Erik Madsen, CCC, April 12, 2014
  4. MadChess - User Guide
  5. MadChess 2.1 Released – MadChess, February 22, 2017
  6. MadChess 2.1 Released - Supports Windows, Linux, Mac by Erik Madsen, CCC, February 23, 2017
  7. Re: Question About CPP-C#, Performance, and Square Representation by Erik Madsen, CCC, October 03, 2012
  8. yield - MSDN C# Reference
  9. Behind the scenes of the C# yield keyword | Struggles by Lars Corneliussen, June 9, 2008
  10. Generator (computer programming) from Wikipedia
  11. Coroutine from Wikipedia
  12. Engine Crash Detective Story by Erik Madsen, CCC, August 29, 2020
  13. Are Aspiration Windows Worthless? by Erik Madsen, CCC, December 20, 2020 » Aspiration Windows

Up one level[[Category:Mac]