/Enyo

Chess Engine written in C++

Primary LanguageC++GNU General Public License v3.0GPL-3.0

logo

Enyo the greek godess of war and destruction.
Watch her play live at Lichess

Board representation


H1 indexed: white king =  3, black king = 59
        A  B  C  D  E  F  G  H
      +------------------------+
8  63 | ♖  ♘  ♗  ♕  ♔  ♗  ♘  ♖ | 56
7  55 | ♙  ♙  ♙  ♙  ♙  ♙  ♙  ♙ | 48
6  47 | -  -  -  -  -  -  -  - | 40
5  39 | -  -  -  -  -  -  -  - | 32
4  31 | -  -  -  -  -  -  -  - | 24
3  23 | -  -  -  -  -  -  -  - | 16
2  15 | ♟  ♟  ♟  ♟  ♟  ♟  ♟  ♟ |  8
1   7 | ♜  ♞  ♝  ♛  ♚  ♝  ♞  ♜ |  0
      +------------------------+
        7  6  5  4  3  2  1  0

Move generation

Bitboards
Magic Bitboards

perft:
echo 'position fen r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -\nbench depth 5\nquit' | ./build/enyo

Search

Negamax
Quiescence
Iterative Deepening
Transposition Table
Aspiration Windows
Reverse Futility Pruning
Razoring
Null Move Pruning
FutilityPruning
Killer Heuristic
...

Evaluation

NNUE

Tools

Fathom

Acknowledgments

Bluefever Software: Chess Engine In C Vice
Chess Programming BBC

Inspired by

* Stockfish
* Smallbrain
* Various open source engines.