This project aims to implement a simple chess engine that can be integrated into lichess. In order for it to run efficiently, I've chosen C++ as my development language.
Produces a fully functional chess engine that can communicate via UCI protocol and play complete games on the platform Lichess.
- Legal move generation for all chess pieces.
- Proper check detection
- Bitboard based board representation
- Full support for promotion, castling, en passant, and piece movements
- Make and unmake moves.
- Basic search (in progres...)
- Implement minimax tree with alpha-beta pruning
- Fixed search depth (4 or 5)
- Evaluation function
- Material based evaluation
- Standard piece value (eg. pawns == 100)
- UCI Protocol Support
- Correct handling of uci, isready, go, stop, quit
- Outputs valid bestmove
- Compatible with UCI GUIs and Lichess bot integration
├── /.venv
├── /build
├── /docs
├── /include
├── /src
├── /tests
├── .dockerignore
├── .env
├── .env.example
├── .gitignore
├── client.py
├── CMakeLists.txt
├── docker-compose.yml
├── docker-compose.prod.yml
├── Makefile
├── README.md
└── requirements.txt
Clone repository:
git clone git@github.com:gradimbuyi/ChessIT.git
Create a .env file using the provided example:
.env.example
Build and start all services:
docker compose up --build
Stopping the application:
docker compose down -v
