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 and engine communication. 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 library
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)

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/LICENSE for the full text. The licenses of the other projects that pydraughts uses are in the 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.6.tar.gz (57.5 kB view details)

Uploaded Source

Built Distribution

pydraughts-0.3.6-py3-none-any.whl (65.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydraughts-0.3.6.tar.gz
  • Upload date:
  • Size: 57.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.6.tar.gz
Algorithm Hash digest
SHA256 ed3dc4a2f1833450b5b8959533ee8a19774cb565ce44571d9907979689aa5e41
MD5 47ab716c4f950f77040ad42104ae2649
BLAKE2b-256 7c9afc8d262274fd334ef1c19dbb52c04361d05398f3f85d90f790b5e18b7f18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydraughts-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 65.1 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e28763819be156b0399d40218c68c8bbf44ac31abc1f3a87f00bc121110f7609
MD5 90b26f0a0fdd15504a4d652dbe7f7820
BLAKE2b-256 6686e96d4ae21781d608b6c39be53b61c3b493df8ba12a069e76b0b806d18302

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