Add functionality to let each player pull up to 3 cards from their hand and replace them with new cards from the deck.

This commit is contained in:
Donald Calloway 2025-09-16 09:28:10 -07:00
parent 02d551de2a
commit 7e58d59ebe

View File

@ -12,14 +12,14 @@ player1: Hand
player2: Hand player2: Hand
deck: Deck deck: Deck
def create_deck(): def create_deck() -> Deck:
deck: Deck = [(rank, suit) for suit in SUITS for rank in RANKS] deck: Deck = [(rank, suit) for suit in SUITS for rank in RANKS]
return deck return deck
def deal_card(deck): def deal_card(deck) -> Card:
return deck.pop() return deck.pop()
def deal_hand(deck, num=5): def deal_hand(deck, num=5) -> Hand:
hand = random.sample(deck, num) hand = random.sample(deck, num)
for card in hand: for card in hand:
deck.remove(card) deck.remove(card)
@ -90,7 +90,7 @@ def display_initial_hands(player1: Hand, player2: Hand):
print("Player 2\n", show_hand(player2)) print("Player 2\n", show_hand(player2))
print() print()
def display_hands(player1, player2): def display_hands(player1: Hand, player2: Hand):
print("\nAfter pulling cards:") print("\nAfter pulling cards:")
print("Player 1's hand:\n", show_hand(player1)) print("Player 1's hand:\n", show_hand(player1))
print() print()
@ -103,8 +103,14 @@ def main():
player1 = deal_hand(deck) player1 = deal_hand(deck)
player2 = deal_hand(deck) player2 = deal_hand(deck)
display_initial_hands(player1, player2) display_initial_hands(player1, player2)
handle_player_input(player1) print("Player 1's turn to pull a card.")
handle_player_input(player2) p1_num = int(input("How many cards do you want to pull? (0-3): "))
for _ in range(p1_num):
handle_player_input(player1)
print("Player 2's turn to pull a card.")
p2_num = int(input("How many cards do you want to pull? (0-3): "))
for _ in range(p2_num):
handle_player_input(player2)
display_hands(player1, player2) display_hands(player1, player2)
# Evaluate hands and determine winner # Evaluate hands and determine winner