Re-designed Chess engine and converted in C++
Clone or download
Permalink
Failed to load latest commit information.
.vs/NapoleonPP/v15 Fixed ponder bug Jun 28, 2017
NapoleonPP.old Fixed ponder bug Jun 28, 2017
bin/Linux/x64 Fixed concurrent bug - Napoleon 1.7 Apr 26, 2017
book Added basic king safety evaluation: king tropism Jun 19, 2017
tuner Knight outpost evaluation Sep 8, 2017
.gitattributes Added basic king safety evaluation: king tropism Jun 19, 2017
.gitignore Added basic king safety evaluation: king tropism Jun 19, 2017
.qmake.stash Added basic king safety evaluation: king tropism Jun 19, 2017
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Jul 6, 2017
CONTRIBUTING.md
LICENSE Create LICENSE Jul 6, 2017
Makefile Recalculated magic numbers to allow the program to run on previous ge… Sep 23, 2017
NapoleonPP Recalculated magic numbers to allow the program to run on previous ge… Sep 23, 2017
NapoleonPP.pro Added basic king safety evaluation: king tropism Jun 19, 2017
NapoleonPP.sln Added basic king safety evaluation: king tropism Jun 19, 2017
README Added basic king safety evaluation: king tropism Jun 19, 2017
README.md Added basic king safety evaluation: king tropism Jun 19, 2017
benchmark.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
benchmark.h Added basic king safety evaluation: king tropism Jun 19, 2017
bishop.h Added basic king safety evaluation: king tropism Jun 19, 2017
board.cpp
board.h Minor improvements Aug 19, 2017
compassrose.h Added basic king safety evaluation: king tropism Jun 19, 2017
console.h Added basic king safety evaluation: king tropism Jun 19, 2017
constants.h Recalculated magic numbers to allow the program to run on previous ge… Sep 23, 2017
defines.h Pawn hash table and evaluation improvements Jul 24, 2017
encoder.h Minor improvements Aug 19, 2017
evaluation.cpp Knight outpost evaluation Sep 8, 2017
evaluation.h Knight outpost evaluation Sep 8, 2017
evolution.h Pawn hash table and evaluation improvements Jul 24, 2017
fenstring.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
fenstring.h Added basic king safety evaluation: king tropism Jun 19, 2017
hashentry.cpp Reduced TT bucket size from 4 to 1 Jul 10, 2017
hashentry.h Reduced TT bucket size from 4 to 1 Jul 10, 2017
king.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
king.h Added basic king safety evaluation: king tropism Jun 19, 2017
knight.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
knight.h Added basic king safety evaluation: king tropism Jun 19, 2017
main.cpp King safety revisited and null move pruning verification Sep 3, 2017
move.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
move.h Added basic king safety evaluation: king tropism Jun 19, 2017
movedatabase.cpp Recalculated magic numbers to allow the program to run on previous ge… Sep 23, 2017
movedatabase.h Recalculated magic numbers to allow the program to run on previous ge… Sep 23, 2017
movegenerator.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
movegenerator.h Search and Evaluation improvements Aug 31, 2017
moveselector.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
moveselector.h King safety revisited and null move pruning verification Sep 3, 2017
parallelinfo.h Added basic king safety evaluation: king tropism Jun 19, 2017
pawn.cpp
pawn.h Pawn hash table and evaluation improvements Jul 24, 2017
pawntable.cpp Knight outpost evaluation Sep 8, 2017
pawntable.h Knight outpost evaluation Sep 8, 2017
piece.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
piece.h
piecesquaretables.h Minor improvements Aug 19, 2017
queen.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
queen.h Added basic king safety evaluation: king tropism Jun 19, 2017
rook.h Added basic king safety evaluation: king tropism Jun 19, 2017
search.cpp Knight outpost evaluation Sep 8, 2017
search.h Implemented genetic framework for search parameters optimization Jul 16, 2017
searchinfo.cpp
searchinfo.h Implemented PVS at root nodes, using previous' iteration move as firs… Jun 28, 2017
spinlock.h Knight outpost evaluation Sep 8, 2017
stopwatch.cpp
stopwatch.h Added basic king safety evaluation: king tropism Jun 19, 2017
transpositiontable.cpp Implemented genetic framework for search parameters optimization Jul 16, 2017
transpositiontable.h Knight outpost evaluation Sep 8, 2017
uci.cpp Knight outpost evaluation Sep 8, 2017
uci.h Implemented PVS at root nodes, using previous' iteration move as firs… Jun 28, 2017
utils.cpp
utils.h Pawn hash table and evaluation improvements Jul 24, 2017
zobrist.cpp Added basic king safety evaluation: king tropism Jun 19, 2017
zobrist.h Added basic king safety evaluation: king tropism Jun 19, 2017

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