A chess engine written in Python with no dependencies. All contributions welcome.
This project is in active development and you may encounter bugs, especially in the game loop and/or implementation of game rules.
The contribution guide can be found on the documentation page
- Internal bitboard representation
- Alpha-beta pruned search
- Move generation API
- Opening book
- Move ordering for faster forward search
- Non-trivial board state evaluation using better heuristics
Install using pip
-
# macOS / Linux (could work on Windows)
python3 -m pip install -U chessengine
# Windows (the primary way)
py -3 -m pip install -U chessengine
Start a game with the computer -
chessengine play
or
python -m chessengine play
If you want to play against another player -
chessengine play -p
or
python -m chessengine play -p
This project uses the black linter for determining code style.
# Install black via pip.
python -m pip install black==22.10.0
# Format
black .
If you've forked this repository, consider enabling GitHub Actions to leverage the automatic pull request creation provided for resolving code formatting errors!