Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

PYTHON CODE:: Chapter 9 Assignment (25 pts.): Blackjack Simulation Previously in this chapter you saw the card_dealer.py program that simulates cards being dealt from a

PYTHON CODE::

Chapter 9 Assignment (25 pts.):

Blackjack Simulation

Previously in this chapter you saw the card_dealer.py program that simulates cards being dealt from a deck. Enhance the program so it simulates a simplified version of the game of

Blackjack between two virtual players. The cards have the following values:

Numeric cards are assigned the value they have printed on them. For example, the value of the 2 of spades is 2, and the value of the 5 of diamonds is 5.

Jacks, queens, and kings are valued at 10.

Aces are valued at 1 or 11, depending on the players choice.

The program should deal cards to each player until one players hand is worth more than

21 points. When that happens, the other player is the winner. (It is possible that both players hands will simultaneously exceed 21 points, in which case neither player wins.) The program should repeat until all the cards have been dealt from the deck.

If a player is dealt an ace, the program should decide the value of the card according to the following rule: The ace will be worth 11 points, unless that makes the players hand exceed

21 points. In that case, the ace will be worth 1 point.

Sample Output:

>>>

Player 1 was dealt 8 of Hearts

Player 2 was dealt 4 of Hearts

Player 1 was dealt 5 of Diamonds

Player 2 was dealt 7 of Diamonds

Player 1 was dealt 10 of Clubs

Player 2 was dealt 9 of Clubs

Player 2 wins.

>>>

# 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)

# 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()

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_step_2

Step: 3

blur-text-image_step3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

MySQL/PHP Database Applications

Authors: Brad Bulger, Jay Greenspan, David Wall

2nd Edition

ISBN: 0764549634, 9780764549632

Students also viewed these Databases questions

Question

Define a database and a database management system.

Answered: 1 week ago

Question

3. How would you address the problems that make up the situation?

Answered: 1 week ago

Question

2. What recommendations will you make to the city council?

Answered: 1 week ago