Re-designed Chess engine and converted in C++
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.vs/NapoleonPP/v15
NapoleonPP.old
bin/Linux/x64
book
tuner
.gitattributes
.gitignore
.qmake.stash
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
Makefile
NapoleonPP
NapoleonPP.pro
NapoleonPP.sln
README
README.md
benchmark.cpp
benchmark.h
bishop.h
board.cpp
board.h
compassrose.h
console.h
constants.h
defines.h
encoder.h
evaluation.cpp
evaluation.h
evolution.h
fenstring.cpp
fenstring.h
hashentry.cpp
hashentry.h
king.cpp
king.h
knight.cpp
knight.h
main.cpp
move.cpp
move.h
movedatabase.cpp
movedatabase.h
movegenerator.cpp
movegenerator.h
moveselector.cpp
moveselector.h
parallelinfo.h
pawn.cpp
pawn.h
pawntable.cpp
pawntable.h
piece.cpp
piece.h
piecesquaretables.h
queen.cpp
queen.h
rook.h
search.cpp
search.h
searchinfo.cpp
searchinfo.h
spinlock.h
stopwatch.cpp
stopwatch.h
transpositiontable.cpp
transpositiontable.h
uci.cpp
uci.h
utils.cpp
utils.h
zobrist.cpp
zobrist.h

README.md

Napoleon

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

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

Current Version: 1.7.0

The use of the book "Fauzi Aggressive 2.5" 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
  • Parallel 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