Home * Engines * Superpawn

an UCI conform, experimental open source chess engine by John Byrd, written in C++, licensed under Creative Commons 3.0 Attribution Unported, and first released in January 2015 [1] . Superpawn comes with a single C++ source file [2] , requires a C++11 compiler, and provides a CMake implementation to target builds using Microsoft VC 2013, GCC 3.8.2 (or higher) or Clang compilers, to run Superpawn on Windows, Linux or Mac OS respectively.
Superpawn logo [3]


The program features a principal variation search with transposition table, and a basic material and mobility evaluation, considering middlegame and endgame piece-square tables, tapered by current game stage. The board is represented as array of 64 pointersto piece objects. A piece is an abstract class with pure virtual PieceValue and GenerateMoves methods, implemented in the concrete, derived piece classes including NoPiece for empty squares.


by Superpawn's author, John Byrd [4] :
Superpawn is an excellent example of the “objects gone wild” style of programming, in which Everything Is An Object. Even the pieces themselves are objects; they know how to move, capture, etc. This of course slows down the move generation and evaluation process immensely, making this program irredeemably slow in tournament conditions. However, its logic is easy to follow and extend as you see fit.

See also

Forum Posts

External Links

Chess Engine



  1. ^ Greetings, and a new engine by John Byrd, OpenChess Forum, January 25, 2015
  2. ^ superpawn/Chess.cpp at master · johnwbyrd/superpawn · GitHub
  3. ^ Superpawn logo designed by Angela M. Eads
  4. ^ Superpawn

What links here?

Up one Level