Skip to content

A PyTorch implementation of AlphaGo Zero applied to Draughts

License

Notifications You must be signed in to change notification settings

TTitcombe/AlphaDraughts

Repository files navigation

Build Status Code style: black

AlphaDraughts

AlphaDraughts is a PyTorch implementation of AlphaGo Zero applied to the game of Draughts.
Draughts, or Checkers, is a far easier game to solve compared to Go, and even to Chess: it has an 8x8 playing board, but only two types of pieces. Additionally, Draughts has been weakly solved. This means that Draughts should present less of a burden to train than AlphaGo (although just how much less is to be determined).

The board game has been implemented. The AI is to follow.

Requirements

Alphadraughts has been developed with python 3.7, however other 3.x versions should work.

Currently, alphadraughts can be installed via local pip installation. Clone the repo, navigate to it, and run:

pip install -e .

How to run

Run python -m scripts.play_game to play a human-vs-human game. This script accepts user input of the form "start-end", where start and end are board square numbers.

To play a "bot" which randomly selects a move, run python -m scripts.play_bot.
We are currently implementing more challenging bots.

Project Structure

|-- .github - Contains github actions
|-- alphadraughts
|   |-- algorithms - Algorithms for training and running the AI
|   |-- draughts - Code to implement the game
|   |-- models - PyTorch nets used in algorithms
|   |-- utils - shared code, or code which doesn't fit anywhere in particular
|-- docs - Rules of the game, notes on how to train or use the AI etc.
|-- models - Trained models capable of playing draughts
|-- results - Videos, graphs, data etc. of AI training and testing
|-- scripts - Handy scripts for playing games and training the AI
|-- tests - CI tests
|-- travis - Files used by Travis to run the tests

Contributing

Contributions to this project are more than welcome. Please see the contributing guide.

Releases

No releases published

Packages

No packages published

Languages