Home * Engines * 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 [1], and features adjustable playing strength with improved algorithms since MadChess 1.4 [2] [3]. 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 [4] [5].
Me Worry? [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.


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




2015 ...

External Links

Chess Engine



  1. ^ MadChess 1.0 Released (C# .NET Engine) by Erik Madsen, CCC, October 25, 2012
  2. ^ MadChess UCI_LimitStrength Algorithm by Erik Madsen, CCC, April 12, 2014
  3. ^ MadChess - User Guide
  4. ^ MadChess 2.1 Released – MadChess, February 22, 2017
  5. ^ MadChess 2.1 Released - Supports Windows, Linux, Mac by Erik Madsen, CCC, February 23, 2017
  6. ^ A postcard with the public domain "me worry?" face that later inspired Mad magazine's Alfred E. Neuman, ca. 1910s, Alfred E. Neuman from Wikipedia
  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

What links here?

Up one level