A draughts library for Python with move generation, PDN reading and writing, engine communication and balloted openings
Project description
pydraughts
pydraughts is a draughts library for Python with move generation, PDN reading and writing, engine communication and balloted openings. It is based on ImparaAI/checkers.
Installing
Download and install the latest release:
pip install pydraughts
Features
Note: White always starts. Black always has the squares starting from 1 (e.g. 1-20 in international draughts).
Variants:
- Standard (International)
- Frisian
- frysk!
- Antidraughts
- Breakthrough
- Russian
- Brazilian
- English/American
- Italian
- Turkish
Engine protocols:
- Hub
- DXP
- CheckerBoard
PDN Reading and Writing
- Import pydraughts
from draughts import Game, Move, WHITE, BLACK
- Create a game
game = Game(variant="standard", fen="startpos")
- Make a move
game.move([34, 30])
- Get legal moves
moves, captures = game.legal_moves()
- Detect wins and draws
has_white_won = game.has_player_won(WHITE)
is_draw = game.is_draw()
winnner = game.get_winner()
is_game_over = game.game_over()
- Convert move to other types
move = Move(game, board_move=moves[0]).pdn_move
- Get fen
fen = game.get_li_fen()
- Communicate with engines
from draughts.engine import HubEngine, Limit
engine = HubEngine("scan.exe hub")
engine.init()
limit = Limit(time=10)
engine_move = engine.play(game, limit, ponder=False)
- Read PDN games
from draughts.PDN import PDNReader
games = PDNReader(filename=filepath)
game = games.games[0]
moves = game.moves
- Write PDN games
from draughts.PDN import PDNWriter
games = PDNWriter(filename=filepath, board=game)
- Get a ballot
from draughts.ballots import Ballots
ballots = Ballots('english')
ballot1 = ballots.get_ballot()
ballot2 = ballots.get_ballot()
Acknowledgements
Thanks to fishnet which was modified to add support for Hub engines. Thanks to akalverboer for their DXC100_draughts_client which was modified to add support for DXP engines.
License
pydraughts is licensed under The MIT License. Check out LICENSE
for the full text.
The licenses of the other projects that pydraughts uses are in the other_licenses
folder.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pydraughts-0.4.6.tar.gz
.
File metadata
- Download URL: pydraughts-0.4.6.tar.gz
- Upload date:
- Size: 175.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.0 importlib_metadata/4.6.1 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7afccd5e41b30f8e4d504511a801c08e89152742dfd64314ff5530f7c8bc76f |
|
MD5 | ff92511f5b43d88be5fa9836560eaad7 |
|
BLAKE2b-256 | eaf666ed65cbf42f056534da6441220ecf596042a2deec81022144c701e6723d |
File details
Details for the file pydraughts-0.4.6-py3-none-any.whl
.
File metadata
- Download URL: pydraughts-0.4.6-py3-none-any.whl
- Upload date:
- Size: 185.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.0 importlib_metadata/4.6.1 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e0715283f93a89faf21b715da069ff5fa163c5d735f0bb7a305f3b82fb4c808 |
|
MD5 | 34d84e6073c6f2a6f4277ab0ba5d4b18 |
|
BLAKE2b-256 | 1a60af1713f71094813abb7f8e937d66b3a899e1b8d8a5028726fbb9b04b7901 |