Skip to main content

A draughts library for Python with move generation, PDN reading and writing and engine communication

Project description

pydraughts

PyPI version Tests Build CodeQL

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
  • Create a game
game = Game(variant="standard", fen="startpos")
  • Make a move
game.move([34, 30])
  • Get legal moves
moves, captures = game.legal_moves()
  • 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 RoepStoep for his draughtsnet 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 GPL 3 (or any later version at your option). Check out LICENSE for the full text. The licenses of the other projects that pydraughts uses are in the other_licenses folder.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydraughts-0.3.8.tar.gz (89.5 kB view details)

Uploaded Source

Built Distribution

pydraughts-0.3.8-py3-none-any.whl (97.6 kB view details)

Uploaded Python 3

File details

Details for the file pydraughts-0.3.8.tar.gz.

File metadata

  • Download URL: pydraughts-0.3.8.tar.gz
  • Upload date:
  • Size: 89.5 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

Hashes for pydraughts-0.3.8.tar.gz
Algorithm Hash digest
SHA256 417bc884dd58558409a0cfbf24b973b57270468de394a6b0ac0a9ef2a9747003
MD5 35821751c1eb5d60b4bfa0d581c20eb2
BLAKE2b-256 f1f5e5464aec9956c5a10a6bc82f4143f45b8db3b24c3e9c5a001220b3e1a733

See more details on using hashes here.

File details

Details for the file pydraughts-0.3.8-py3-none-any.whl.

File metadata

  • Download URL: pydraughts-0.3.8-py3-none-any.whl
  • Upload date:
  • Size: 97.6 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

Hashes for pydraughts-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7bab646fbe6e6038f62ac0e09abf91fcce8c458bb6e64afe328be86bfc0d601e
MD5 edda757ed577186bef2574f910156819
BLAKE2b-256 1036c9574696f93cadfca30e6e1633409f8f1b147e8509a887fe10c6afe31cb7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page