Re-designed Chess engine and converted in C++
C++ C IDL
Latest commit 6e73043 May 18, 2014 @crybot Update README.md
Permalink
Failed to load latest commit information.
NapoleonPP Modified razoring - Napoleon 1.5.0 Mar 24, 2014
bin Modified razoring - Napoleon 1.5.0 Mar 24, 2014
.gitattributes Implemented AEL pruning Jan 20, 2014
.gitignore Implemented AEL pruning Jan 20, 2014
NapoleonPP.pro Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
NapoleonPP.sln Implemented AEL pruning Jan 20, 2014
README Implemented AEL pruning Jan 20, 2014
README.md Update README.md May 18, 2014
benchmark.cpp Implemented modified Late move reduction (LMR) - Napoleon 1.3.2 Jan 28, 2014
benchmark.h Implemented AEL pruning Jan 20, 2014
bishop.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
board.cpp Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
board.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
compassrose.h Implemented AEL pruning Jan 20, 2014
console.h Implemented AEL pruning Jan 20, 2014
constants.h Modified razoring - Napoleon 1.5.0 Mar 24, 2014
defines.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
evaluation.cpp Modified razoring - Napoleon 1.5.0 Mar 24, 2014
evaluation.h Modified razoring - Napoleon 1.5.0 Mar 24, 2014
fenstring.cpp Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
fenstring.h Implemented AEL pruning Jan 20, 2014
hashentry.cpp Implemented AEL pruning Jan 20, 2014
hashentry.h Implemented AEL pruning Jan 20, 2014
king.cpp Implemented AEL pruning Jan 20, 2014
king.h Implemented AEL pruning Jan 20, 2014
knight.cpp Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
knight.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
main.cpp Implemented AEL pruning Jan 20, 2014
move.cpp Implemented AEL pruning Jan 20, 2014
move.h Implemented AEL pruning Jan 20, 2014
movedatabase.cpp Implemented AEL pruning Jan 20, 2014
movedatabase.h Implemented AEL pruning Jan 20, 2014
movegenerator.cpp Implemented AEL pruning Jan 20, 2014
movegenerator.h Implemented AEL pruning Jan 20, 2014
moveselector.cpp Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
moveselector.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
pawn.cpp Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
pawn.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
piece.cpp Implemented AEL pruning Jan 20, 2014
piece.h Implemented AEL pruning Jan 20, 2014
piecesquaretables.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
queen.cpp Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
queen.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
rook.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
search.cpp Modified razoring - Napoleon 1.5.0 Mar 24, 2014
search.h Modified razoring - Napoleon 1.5.0 Mar 24, 2014
searchinfo.cpp Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
searchinfo.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
stopwatch.cpp Implemented AEL pruning Jan 20, 2014
stopwatch.h Implemented AEL pruning Jan 20, 2014
transpositiontable.cpp Implemented AEL pruning Jan 20, 2014
transpositiontable.h Implemented AEL pruning Jan 20, 2014
uci.cpp Modified razoring - Napoleon 1.5.0 Mar 24, 2014
uci.h Implemented AEL pruning Jan 20, 2014
utils.cpp Implemented AEL pruning Jan 20, 2014
utils.h Re-written evaluation function - Napoleon 1.4.0 Mar 23, 2014
zobrist.cpp Implemented AEL pruning Jan 20, 2014
zobrist.h Implemented AEL pruning Jan 20, 2014

README.md

Napoleon

Cross-platform/cross-compiler chess engine written in C++.

More info: http://sdrv.ms/14KHXQV (ITALIAN)

Current Version: 1.5.0

The use of the book "MiniGames by Fauzi.abk" by Fauzi Dabat is recommended

Features:

  • Cross platform (Windows, Unix, Mac)
  • Cross compiler (GCC, Clang, Visual C++, others)
  • C++ source
  • 32/64 bit architectures
  • Magic bitboards move generator
  • Pseudo legal move generator
  • 16 bit move encoding
  • Object-oriented code
  • Enhanced readability
  • Well commented
  • Alpha beta search
  • Principal variation search
  • Iterative deepening (ID)
  • Internal iterative deepening (IID)
  • Zobrist hashing (used for repetition detection too)
  • 4 buckets Transposition table
  • Depth replacement scheme for transposition table
  • Aspiration windows
  • Quiescent search + delta pruning + MVV-LVA
  • Killer moves heuristic
  • History moves heuristic
  • Enhanced selective move ordering
  • Enhanced razoring
  • Extended futility pruning
  • Adaptive null move pruning
  • Adaptive Late move reduction
  • Transposition table best-move probing
  • MVV-LVA ordering
  • Principal variation extraction from transposition table
  • Uci protocol