Skip to main content

Framework for creating or playing card games

Project description

Deck of cards

This is a python package for building or playing card game.

Installation

This packaged was tested in Python versions 3.8, 3.9 and 3.10. to check your Python vesion,

python -V

To install deckcards,

python -m pip install deckcards

Basic usage

The deckcards modules provide a framework to implement a game of cards in python. For details on cards and games of cards check out this wikipedia page.

The two main classes are Card and Deck.

Card

An instance of Card represents a single card. Create a card object providing two parameters: rank and suit. Both string. Valid values for ranks are:

>>> import deckcards as dc
>>> print(cd.Card.ranks)
['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']

And valids values for suits are either their names or their symbols in unicode emoji representation.

Card have dictionaries to map both ways:

>>> print(dc.Card.suits)
{'club': '♣', 'diamond': '♦', 'heart': '♥', 'spade': '♠'}
>>> print(dc.Card.suits_name)
{'♣': 'club', '♦': 'diamond', '♥': 'heart', '♠': 'spade'}

A card objet is only a representation, meaning that it don't present any behavior (method). Create a card:

>>> card = dc.Card('A', '♠')
>>> print(card.rank)
A
>>> print(card.suit)

>>> print(card)
A 
>>> card
Card.rank: A, Card.suit: 

By defult, 'A' is the highest rank:

>>> card.value
13

Deck

An instance of Deck has four behaviors to build most of popular card games: draw, throw, waste and pick a card, based on three main areas:

Pack: cards not in game yet. Also know as draw pile, this area feeds the other two areas.

  • Stock: cards in game. Although not implemented in this package, you can think of sub-areas of stock as players's hands and as stack (faced down cards in front of players).
  • Waste pile: cards not in game anymore.

Draw

Action of taking the card from the top of pack (draw pile) and put it in stock. Stock is where cards in game are stored. A card in game is a card in a player's hand or in table, or stack (shown of not).

Throw

Action of taking a given card from stock and throw it to wastepile. In practice the most common throw is discarding card from a player's hand.

Waste

Action of taking a given card from pack, or the card from it's top, and discard to wastepile.

Pick

Action of taking a given card from pack, or the card from it's top, and place it in stock.

A fith behavior can be reproduced with method deal(self, n_players=2, n_cards=2, standard=True) , wich returns a list of n_cards in each elements, whith length n_players. This function puts all cards in stock. The dealing fashion is standard by default, i.e., one card each hand, each round of dealing.

In src/examples is a script with black Jack implemented. You can run the game:

>> from deckcards.examples import BlackJack
>> game = BlackJack()
>> game.run()
------------
Dealer's cards: |9 ♥||? ?|      -> score: 9
player's cards: |J ||5 |      -> score: 15
- Digit s for stand or h for hit:

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowlegments

This project used the template from https://github.com/tomchen/example_pypi_package

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

deckcards-1.0.1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

deckcards-1.0.1-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file deckcards-1.0.1.tar.gz.

File metadata

  • Download URL: deckcards-1.0.1.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for deckcards-1.0.1.tar.gz
Algorithm Hash digest
SHA256 460c1cd18dfbede0609a2d23db1293e25ef1fe572e680a8ee18dd033067828a6
MD5 f5011f5ab013e89c7f776b0e61152246
BLAKE2b-256 60cf2aa579c2d7bc28db6ac54a211e3033781830a7e86cf9aeec41d6c36290b3

See more details on using hashes here.

File details

Details for the file deckcards-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: deckcards-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for deckcards-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c975338d9cceed848e1eba1ad2ad3b92557b71f8cd46fca03b7c7b1dcab27b25
MD5 483ae899169be10f8ee9a4e92d60d414
BLAKE2b-256 b2a616fca399da48e2e2719f4e713ce0e91119c63099cadddd5b123c3a706c87

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