A chess engine and machine learning experimentation testbed.
Originally written as a project to investigate AI techniques, pawn
is now at a decent strength to beat average players. It has been tested against some popular enginess (such as GnuChess) as part of its training to evolve with some satisfactory results.
I will be adding details about its architecture and the research behind it later on.
make && bin/pawn
If you'd rather use a GUI, you can run:
make && xboard -fcp bin/pawn
but you'll need to have xboard
pre-installed as pawn
doesn't have a GUI of its own.
If you find issues running any of the above, check the following sections for installation details.
In Debian-based distributions, you should be able to install both by running sudo apt install build-essential
in a terminal. See this post for detailed instructions.
If you're using Mac OS X, both tools should be available in your terminal if you've installed XCode
; otherwise, you can follow the instructions in this post to install them.
To install it in Linux or other Debian-based distributions, run the following command in your terminal:
sudo apt install xboard
To install it in Mac OS X:
brew install xboard
Notice that only a very small subset of functionality available from the GUI has been implemented in the engine.
If you don't want to use the GUI, you can still play using the console by running:
bin/pawn
In this case, you can make moves by typing the initial and final square of any piece on the board. For example, you can type e2e4
to move the king pawn two squares forward, or g1f3
to develop the king knight instead. Castling is done simply by typing the movement of the king (e.g., e1g1
for the white king.)
Unit testing is very much absent at this point, but the infrastructure to add tests is in place.
make unit_test