菜鸟初学者求助,以下能做几个stage做几个,最终要求的输出结果示例在最后。很紧急明早要交!拜托拜托!!!应该不是太难,只是我真的太菜了www (可追加酬金)
已给的随机洗牌代码:
#
# playing_cards module - PSP Assignment 3, sp3, 2021.
# DO NOT MODIFY!
#
import random
# Deck of cards - first letter represents the face value and
# second letter represents the suit
deck = ['AH','2H','3H','4H','5H','6H','7H','8H','9H','TH','JH','QH','KH',
'AD','2D','3D','4D','5D','6D','7D','8D','9D','TD','JD','QD','KD',
'AS','2S','3S','4S','5S','6S','7S','8S','9S','TS','JS','QS','KS',
'AC','2C','3C','4C','5C','6C','7C','8C','9C','TC','JC','QC','KC']
# Playing deck in use
playing_deck = []
# Function to determine whether there are any cards left in the
# deck of playing cards
# Parameters: No parameters
# Returns: True if the deck is empty, False otherwise
def is_empty_deck():
# Check to see whether playing deck is empty
return len(playing_deck) == 0
# Function to rebuild and shuffle the deck
# Parameters: No parameters
# Returns: Nothing is returned from the function.
def reset_deck():
global playing_deck
# Create new playing deck
playing_deck = deck.copy()
# Shuffle deck
random.shuffle(playing_deck)
# Function to deal one card
# Parameters: No parameters
# Returns: A string (containing two characters) representing
# the card delt, i.e. '2H' meaning 2 of Hearts
def deal_one_card():
# Check to see whether there are any cards left
if is_empty_deck():
# Rebuild and shuffle deck
reset_deck()
# Return a card (string of two characters)
return playing_deck.pop(0)
题目:
最终输出结果:
import random
# Create a list of card values
card_values = [2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11]
# Create a function to calculate the total point value of a hand
def calculate_points(hand):
point_value = sum(hand)
for card in hand:
if card == 11 and point_value > 21:
point_value -= 10
return point_value
# Create a function to deal a new card
def deal_card():
return random.choice(card_values)
# Initialize the player's hand and the dealer's hand
player_hand = [deal_card(), deal_card()]
dealer_hand = [deal_card(), deal_card()]
# Check for blackjack
if calculate_points(player_hand) == 21:
print("Blackjack! You win.")
exit()
# Ask the player if they want to hit or stand
while True:
choice = input("Do you want to hit or stand? ")
if choice == "hit":
player_hand.append(deal_card())
print("Player's hand:", player_hand)
print("Player's point value:", calculate_points(player_hand))
if calculate_points(player_hand) > 21:
print("You bust! You lose.")
exit()
elif choice == "stand":
break
else:
print("Invalid choice.")
# The dealer's turn
while calculate_points(dealer_hand) < 17:
dealer_hand.append(deal_card())
print("Dealer's hand:", dealer_hand)
print("Dealer's point value:", calculate_points(dealer_hand))
if calculate_points(dealer_hand) > 21:
print("Dealer busts! You win.")
exit()
# Compare the point values of the player's hand and the dealer's hand
if calculate_points(player_hand) > calculate_points(dealer_hand):
print("You win!")
elif calculate_points(player_hand) == calculate_points(dealer_hand):
print("It's a push.")
else:
print("You lose.")