Réglisse is a chess engine written from scratch in Python and JavaScript.
Réglisse uses mailbox and the idea behind it was simplicity and not playing strenght. I hope the code will be clear and well commented for those who want to understand how a chess engine works.
It currently has the following features :
- Book : Stockfish's opening book to be added on JS version
- Board representation
- Evaluation
- PSQT eval
- material balance
- tapered eval
- Mop-up evaluation
- Trapped bisops
- Minor pieces development
- Center control : Pawn center
- Unadvanced central pawns
- space control eval to be readded
- bishop pair to be readded
- Search
- PVS
- ZWS(in PVS)
- PV store
- TT
- Null Move Pruning
- Double Null Move to be readded
- Razoring
- LMR
- Futility Pruning
- iterative deepening
- mate distance pruning
- Quiescence Search
- check extensions (check-evaders for the moment)
- delta pruning
- Hard cutoff (to prevent search explosion)
- Move Orderning
- MVV LVA
- History Heuristic
- Killer Moves Heuristic
- TT score
- Eval score
- UCI interface (not fully supported)
As for Ramsès-Chess, I took a cat name. Réglisse is one of my friend's cat.
Take a look at the thanks file to see people who made this project possible.
See the license file to know more about legal stuffs.
Réglisse supports some basics commands of the UCI interface. Few more commands exist :
move [move]
: make the move (in UCI format) on the boardundo
: undo the last movego move
: make the engine search and play its move on the boardgo perft [X]
: perft depth X debugging functiond
: displays the board, the FEN and the hash key of the current positioneval
: displays the static evaluation of the current position (do not displays mate, mate scores are handled in search)
You can run Réglisse in your favorite UCI GUI or in the terminal with this script. You may have to authorize access to this script first ($ chmod +x [path to scipt]
on MacOS and Linux). You need node to run Réglisse locally. You may have to modify /usr/local/bin/node
on the script to the path to node on your system.
You can also play against Réglisse on its Lichess account. If it is not online, you can put it online with you Google account by running this notebook (select the code cell and hit SHIFT + ENTER
) or this script.
To see all availables UCI options, look at this file.