Home * Engines * HeavyChess
HeavyChess.jpg

HeavyChess,
an UCI compliant open source chess engine written by Chispa author Federico Andrés Corigliano in C++, released in 2007 [1].
Heavy Chess [2]

Description

Board Representation

HeavyChess is a bitboard engine and uses compact rotated bitboards to determine sliding piece attacks. It performs eight byte lookups to count populations, and bitscan by conditional 64k lookups, where the most significant bit on the chess board maps the least significant arithmetical one [3]:
// Devuelve el Most Significant Bit de un Bitboard
inline Casilla Bitboards::MSB(const Bitboard &b) {
   if (b&65535) return static_cast<Casilla>(TablaMSB[b&65535]);
   if (b&MSBMask1) return static_cast<Casilla>(TablaMSB[(b>>16)&65535]+16);
   if (b&MSBMask2) return static_cast<Casilla>(TablaMSB[(b>>32)&65535]+32);
   return static_cast<Casilla>(TablaMSB[b>>48]+48);
}

Search

HeavyChess applies PVS alpha-beta with transposition table and null move pruning, mate theat and check extensions inside a fractional ply iterative deepening framework with aspiration windows.

Evaluation

The evaluation seems not that heavy as the program's name suggests. Beside obligatory, incremental updated material balance, HeavyChess utilizes piece-square tables and considers various piece terms, such as bishop pair, rook on (half) open file, and rook on 7th rank.

See also


Forum Posts


External Links


References

  1. ^ HeavyChess by Ron Murawski, Winboard Forum, September 09, 2008
  2. ^ Chessboard and pieces made out of mining tools and parts in Cerro Sombrero, Chile. Flickr Photo by Mr. Hicks, March 08, 2010
  3. ^ HeavyChess 0.13 \BitBoards.h

What links here?


Up one Level