Updated Game() function to repeat user_input if player enter an invalid number of cards to be pulled.

This commit is contained in:
Donald Calloway 2025-09-17 10:44:59 -07:00
parent 6227c5b3a8
commit 4d45d1168e

View File

@ -82,22 +82,29 @@ class Game:
self.player2 = Player("Player 2", self.deck)
def prompt_card_replacement(self, player: Player):
num = int(input(f"{player.name}, how many cards do you want to pull? (0-3): "))
if not (0 <= num <= 3):
print("Invalid number. Choose between 0 and 3.")
return
while True:
try:
num = int(input(f"{player.name}, how many cards do you want to pull? (03): "))
if 0 <= num <= 3:
break
else:
print("Invalid number. Please choose between 0 and 3.")
except ValueError:
print("Invalid input. Please enter a number between 0 and 3.")
for _ in range(num):
print("Your hand:\n", player.show_hand())
user_input = input("Enter a card to replace (e.g., A of Spades): ").strip()
if ' of ' not in user_input:
print("Invalid format.")
print("Invalid format. Use 'Rank of Suit'.")
continue
rank, suit = user_input.split(' of ', 1)
old_card = Card(rank, suit)
if old_card not in player.hand:
print(f"{old_card} not found in your hand.")
continue
new_card = self.deck.deal_card()
if player.replace_card(old_card, new_card):
print(f"Replaced {old_card} with {new_card}")