From Chessprogramming wiki
Revision as of 10:29, 6 December 2019 by GerdIsenberg (talk | contribs) (Created page with "'''Home * Engines * Diablo''' FILE:Cojuelo03.JPG|border|right|thumb| [https://en.wikipedia.org/wiki/Dominican_Carnival_%28Dominican_Republic%29#Characters...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Home * Engines * Diablo

an UCI compliant open source chess engine by Marcus Prewarski, written in C, distributed under the GNU General Public License, first released in 2005, latest version Diablo 0.5.1 released in October 2006, with Jim Ablett compiles available [2].


Board Representation

Diablo is a 0x88 engine with piece-lists to determe vector attacks by 0x88 square difference. It performs pseudo-legal move generation and keeps an attack table per ply - initialized once per node during evaluation, which later speeds up in check detection and static exchange evaluation by lookup.


The search is PVS alpha-beta inside the fractional ply iterative deepening framework without aspiration. The depth-preferred transposition table based on Zobrist hashing is used in the main search only. Beside quiescence, selectivity is due to futility pruning near the tips, null move pruning combined with mate threat extensions, and further fractional extensions for single replies, check, passed pawn to 7th rank and queening. Move ordering takes PV-move, MVV/LVA plus fast SEE for captures, two killers and the history heuristic into account. Internal iterative deepening is applied in case of PV-nodes if no move was found in the transposition table.


Evaluation considers material with piece-square tables, bishop pair, development, center control, mobility of bishops and rooks, in particular considering trapped rooks, rook on open file and on 7th rank. Pawn structure evaluation focuses on passed pawns and further punishes backward and doubled pawns. King safety terms pay attention to an exposed king and pawn shield. Appropriate scores are aggregated in opening and endgame accumulators and finally, if the sum of material is below some late endgame threshold, tapered by the current game phase aka sum of material.

See also

Forum Posts

External Links

Chess Engine


Chess Computers




Music Video


Up one Level