67 lines
2.7 KiB
Python
67 lines
2.7 KiB
Python
|
# card_dealer.py: main function
|
||
|
# This program uses a dictionary as a deck of cards.
|
||
|
|
||
|
def main():
|
||
|
# Create a deck of cards.
|
||
|
deck = create_deck()
|
||
|
|
||
|
# Get the number of cards to deal.
|
||
|
num_cards = int(input('How many cards should I deal? '))
|
||
|
|
||
|
# Deal the cards.
|
||
|
deal_cards(deck, num_cards)
|
||
|
|
||
|
# Line 5 calls the create_deck function. The function creates a dictionary with key-value pairs for a deck of cards, and it returns a reference to the dictionary. The reference is assigned to the deck variable.
|
||
|
|
||
|
# Line 8 prompts the user to enter the number of cards to deal. The input is converted to an integer and is assigned to the num_cards variable.
|
||
|
# The create_deck function returns a dictionary
|
||
|
# representing a deck of cards.
|
||
|
def create_deck():
|
||
|
# Create a dictionary with each card and its value
|
||
|
# stored as key-value pairs.
|
||
|
deck = {'Ace of Spades':1, '2 of Spades':2, '3 of Spades':3,
|
||
|
'4 of Spades':4, '5 of Spades':5, '6 of Spades':6,
|
||
|
'7 of Spades':7, '8 of Spades':8, '9 of Spades':9,
|
||
|
'10 of Spades':10, 'Jack of Spades':10,
|
||
|
'Queen of Spades': 10, 'King of Spades': 10,
|
||
|
'Ace of Hearts':1, '2 of Hearts':2, '3 of Hearts':3,
|
||
|
'4 of Hearts':4, '5 of Hearts':5, '6 of Hearts':6,
|
||
|
'7 of Hearts':7, '8 of Hearts':8, '9 of Hearts':9,
|
||
|
'10 of Hearts':10, 'Jack of Hearts':10,
|
||
|
'Queen of Hearts':10, 'King of Hearts': 10,
|
||
|
'Ace of Clubs':1, '2 of Clubs':2, '3 of Clubs':3,
|
||
|
'4 of Clubs':4, '5 of Clubs':5, '6 of Clubs':6,
|
||
|
'7 of Clubs':7, '8 of Clubs':8, '9 of Clubs':9,
|
||
|
'10 of Clubs':10, 'Jack of Clubs':10,
|
||
|
'Queen of Clubs': 10, 'King of Clubs': 10,
|
||
|
'Ace of Diamonds':1, '2 of Diamonds':2, '3 of Diamonds':3,
|
||
|
'4 of Diamonds':4, '5 of Diamonds':5, '6 of Diamonds':6,
|
||
|
'7 of Diamonds':7, '8 of Diamonds':8, '9 of Diamonds':9,
|
||
|
'10 of Diamonds':10, 'Jack of Diamonds':10,
|
||
|
'Queen of Diamonds': 10, 'King of Diamonds': 10}
|
||
|
|
||
|
# Return the deck.
|
||
|
return deck
|
||
|
# The deal_cards function deals a specified number of cards
|
||
|
# from the deck.
|
||
|
def deal_cards(deck, number):
|
||
|
# Initialize an accumulator for the hand value.
|
||
|
hand_value = 0
|
||
|
|
||
|
# Make sure the number of cards to deal is not
|
||
|
# greater than the number of cards in the deck.
|
||
|
if number > len(deck):
|
||
|
number = len(deck)
|
||
|
|
||
|
# Deal the cards and accumulate their values.
|
||
|
for count in range(number):
|
||
|
card, value = deck.popitem()
|
||
|
print(card)
|
||
|
hand_value += value
|
||
|
|
||
|
# Display the value of the hand.
|
||
|
print('Value of this hand:', hand_value)
|
||
|
|
||
|
# Call the main function.
|
||
|
main()
|