Skip to content

projectweekend/PyCards

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Install it

pip install PyCards

Base Card Class

This is a generic base class with no defined constructor method. It only includes helper methods for converting to and from dict/json.

from pycards import BaseCard

# Create a card instance from a dictionary
card_dict = {'rank': 'ACE', 'suit': 'SPADES'}
card = BaseCard.from_dict(card_dict=card_dict)

# Create a card instance from JSON
card_json = '{"rank": "ACE", "suit": "SPADES"}'
card = BaseCard.from_json(card_json=card_json)

card.rank
# 'ACE'

card.suit
# 'SPADES'

card.to_dict()
# {'rank': 'ACE', 'suit': 'SPADES'}

card.to_json()
# '{"rank": "ACE", "suit": "SPADES"}'

# Create a list of cards from JSON or a list of dictionaries
cards_config_json = '[{"rank": "ACE", "suit": "SPADES"}]'
cards = BaseCard.generate_cards(config=cards_config_json)

for card in cards:
    print(card.rank)
    # 'ACE'
    print(card.suit)
    # 'SPADES'

Base Deck Class

This is a generic base class for interacting with a list of card objects.

# Create a list of cards from JSON or a list of dictionaries
cards_config_json = '[{"rank": "ACE", "suit": "SPADES"}]'
cards = BaseCard.generate_cards(config=cards_config_json)

# Create a deck instance with a list of cards
deck = BaseDeck(cards=cards)

card = deck.draw_card()

card.rank
# 'ACE'

card.suit
# 'SPADES'

deck.cards_remaining
# 0

deck.cards_removed
# 1

# Shuffle all removed cards back into deck
deck.shuffle()

deck.cards_remaining
# 1

deck.cards_removed
# 0

deck.to_dict()
# {'cards_remaining': [{'rank': 'ACE', 'suit': 'SPADES'}], 'cards_removed': []}

deck.to_json()
# '{"cards_remaining": [{"rank": "ACE", "suit": "SPADES"}], "cards_removed": []}'

deck_dict = {'cards_remaining': [{'rank': 'ACE', 'suit': 'SPADES'}], 'cards_removed': []}
deck = BaseDeck.from_dict(card_cls=BaseCard, deck_dict=deck_dict)

deck_json = '{"cards_remaining": [{"rank": "ACE", "suit": "SPADES"}], "cards_removed": []}'
deck = BaseDeck.from_json(card_cls=BaseCard, deck_json=deck_json)

Run Tests

After cloning this repo:

pip install -r requirements.txt
nosetests -v --with-coverage --cover-erase --cover-package=pycards --cover-html

About

Playing Cards

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages