Home * Engines * Chest

Chest, (CHEST)
a program for solving orthodox chess problems, such as checkmate, stalemate, helpmate, helpstalemate, selfmate and selfstalemate in N [1]. Chest is under development since 1987, written in ANSI C by Heiner Marxen, Holger Pause and Thomas Rakovsky, while Heiner already started with a mate-in-two solver written in Fortran II in 1973 [2] [3]. Chest does not play chess, but proves shortest solutions or its absence. It was first released in December 1999 as open source [4]. ChestUCI by Franz Huber, written in Delphi [5], is an UCI adapter for a slightly modified Chest 3.19, to run it from any GUI which can run UCI chess engines.




The main tree search function, utilizing a transposition table, is recursive, i.e. for a job of depth N this function does call itself several times with depth N-1, and always performs "iterative deepening", i.e. a job or subjob with a depth of 3 is first computed with a depth of 1, and if that fails, with a depth of 2 and if this also fails, with a depth of 3.

Board Representation

Chest uses a one-dimensional, incremental updated 16x24 mailbox board representation to not only apply vector attacks but also to allow any legal displacement vector between two non-border squares to be added to any legal square without probing memory outside the 16x24 array. Per square, it keeps distinct piece type and piece color, and further piece-sets of direct and indirect attacking/defending pieces. The redundancy pays off, since the attack info greatly speeds up the generation of legal moves.

See also

Forum Posts


2000 ...

2005 ...

2010 ...

External Links


  1. ^ Chest - Readme Long
  2. ^ Chest - Readme Long - History
  3. ^ Re: Perft(3) from 1978, with a twist! by Heiner Marxen, CCC, December 09, 2011
  4. ^ CHEST 3.19 is available by Heiner Marxen, CCC, December 18, 1999
  5. ^ Re: ChestUCI Source Code by Franz Huber, CCC, December 15, 2010
  6. ^ Description based on Readme Long

What links here?

Up one level