A chess engine in Python using numPy (WIP). Livestreamed here: www.youtube.com/watch?v=1QotIA4_jb4
Significant portions of this project have been built on livestream to document the learning process.
The livestream series is in progress on YouTube, and it starts here: https://www.youtube.com/watch?v=1QotIA4_jb4
The current version of Wake is run using Python 3.x from the terminal.
Clone the directory
pip install -r requirements.txt
(this installs the single dependency, numPy
)
cd wake
python3 game.py
You will be presented with an output of the board in the shell:
Wake Engine [0.1.0] running using interface mode: [uci]
White to move:
8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎
6 ░ ░ ░ ░ ░ ░ ░ ░
5 ░ ░ ░ ░ ░ ░ ░ ░
4 ░ ░ ░ ░ ░ ░ ░ ░
3 ░ ░ ░ ░ ░ ░ ░ ░
2 ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙
1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
A B C D E F G H
To make a move, use UCI-style (short algebraic notation) move inputs, e.g: e2e4
. This will update the
state of the game.
Black to move:
8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
7 ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎ ♟︎
6 ░ ░ ░ ░ ░ ░ ░ ░
5 ░ ░ ░ ░ ░ ░ ░ ░
4 ░ ░ ░ ░ ♙ ░ ░ ░
3 ░ ░ ░ ░ ░ ░ ░ ░
2 ♙ ♙ ♙ ♙ ░ ♙ ♙ ♙
1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
A B C D E F G H
The engine code is currently under development, using the UCI protocol to define valid inputs.
The only valid inputs are currently:
g1f3
for a normal move, a7a8q
for promotion)quit
to kill the engine and terminal input processes.The engine code will be open for general contribution from the after v1 is complete.
Board representation testing
Search and Evaluation
Position
classRewrite