Skip to main content

Library for playing a standard game of checkers/draughts

Project description

A Python3 library that you can use to play a game of checkers/draughts. This is just a set of classes that you can use in your code, it's not an interactive shell checkersgame.

#Note: This is a modified version of the Imparaai checkers library. Alongside the base module (which I forked from the repository at the above link), the Colorama and PrettyTable dependencies are also in use. The only addition I have made to this module is a graphical representation of the board.

Assumptions

The rules used are for competitive American checkers or English draughts. This means an 8x8 board with force captures and regular kings.

Each position on the board is numbered 1 to 32. Each move is represented as an array with two values: starting position and ending position. So if you're starting a new game, one of the available moves is [9, 13] for player 1. If there's a capture move, the ending position is the position the capturing piece will land on (i.e. two rows from its original row), which might look like [13, 22].

Each piece movement is completely distinct, even if the move is part of a multiple capture series. In Portable Draughts Notation mutli-capture series are usually represented by a 5-32 (for a particularly long series of jumps), but in certain situations there could be multiple pathways to achieve that final position. This game requires an explicit spelling out of each distinct move in the multi-capture series.

Usage

Create a new game:

from checkers.game import Game

game = Game()

See whose turn it is:

game.whose_turn() #1 or 2

Get the possible moves:

game.get_possible_moves() #[[9, 13], [9, 14], [10, 14], [10, 15], [11, 15], [11, 16], [12, 16]]

Make a move:

game.move([9, 13])

Check if the game is over:

game.is_over() #True or False

Find out who won:

game.get_winner() #None or 1 or 2

Review the move history:

game.moves #[[int, int], [int, int], ...]

Change the consecutive noncapture move limit (default 40 according to the rules):

game.consecutive_noncapture_move_limit = 20
game.move_limit_reached() #True or False

Review the pieces on the board:

for piece in game.board.pieces:
	piece.player #1 or 2
	piece.other_player #1 or 2
	piece.king #True or False
	piece.captured #True or False
	piece.position #1-32
	piece.get_possible_capture_moves() #[[int, int], [int, int], ...]
	piece.get_possible_positional_moves() #[[int, int], [int, int], ...]

Get a string representation of the pieces on the board:

str(game.board)

Output:

Output

Testing

Run python3 -m unittest discover from the root.

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

Built Distribution

File details

Details for the file imparaai-checkers-for-BFHS-programming-1.4.2.2.tar.gz.

File metadata

  • Download URL: imparaai-checkers-for-BFHS-programming-1.4.2.2.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for imparaai-checkers-for-BFHS-programming-1.4.2.2.tar.gz
Algorithm Hash digest
SHA256 7c8889168faf9193188972e25c4395c21b0763955339dec63addea043adfba67
MD5 c6968cdf68e5594ed3b09078d400b5ff
BLAKE2b-256 bf4b69c4461f4a91ad8b919b4ac77ffa32a03dfa38905ee3e4a1c20d3eb3180e

See more details on using hashes here.

File details

Details for the file imparaai_checkers_for_BFHS_programming-1.4.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for imparaai_checkers_for_BFHS_programming-1.4.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7546e7eeb387affdde16d34c26c6e588304ead4f90af26fdee38068734dca54e
MD5 1d3889d90f7476973384c0a8038a35b8
BLAKE2b-256 f936bbcbcaa89cc8ba0477473e0bf63f31db9c4ed54247a73ab6fa3e1fb3f4f8

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