From Chessprogramming wiki
Revision as of 15:57, 17 August 2018 by GerdIsenberg (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Home * Engines * Wing

Forces acting on a wing [1]

a WinBoard compliant chess engine by Stef Luijten written in C++, first released in October 2004. Initially influenced by Crafty [2], Wing was released as open source in December 2010 to demonstrate the basics of chess programming [3], shortly before Stef Luijten started his Winglet tutorial Writing a Chess Program in 99 Steps [4].


Board Representation

Wing is a bitboard engine and determines sliding piece attacks using rotated bitboards. The inner six bits optimization yields to four lookup tables of 64x64x8 bytes, that is 32-KiB each or 1/8 MiB in total for ranks, files, diagonals and anti-diagonals. Interestingly, this attack table layout was preserved in Winglet, when line-wise occupied states were rotated on the fly by magic multiplication and shift right.


Wing performs a negamax alpha-beta search with conditional compiled (default on) PVS inside the iterative deepening framework without aspiration windows. The recent version has a always replace transposition table using Zobrist keys, while earlier versions used an additional depth-preferred replacement table [5]. As stated by its author in 2006, Wing has gained over 100 ELO points from adding history pruning [6], while the published sources lack LMR.


Move Ordering


Backward Pawn
Doubled Pawn
Isolated Pawn
Passed Pawn
Connected Passed Pawns
Pawn Shield
King Tropism

See also

Forum Posts

External Links

Chess Engine



Line-up: Thijs van Leer, Philip Catherine, Bert Ruiter, David Kemper


Up one Level