redid Game.compare_hands() method

This commit is contained in:
2025-10-27 17:39:16 +01:00
parent c31fccaf88
commit ddf1aa81d5

View File

@@ -1,3 +1,4 @@
import re
from pyjack.dealer import Dealer from pyjack.dealer import Dealer
from pyjack.deck import Deck from pyjack.deck import Deck
from pyjack.player import Player from pyjack.player import Player
@@ -25,33 +26,42 @@ class Game:
*Returns* the result string (e.g., "Player Wins!").""" *Returns* the result string (e.g., "Player Wins!")."""
# HACK: this might work but certainly needs to be fixed. # HACK: this might work but certainly needs to be fixed.
# check if Player or Dealer busts # check if Player or Dealer busts
if self.player.hand.value > 21:
player_value = self.player.hand.value
dealer_value = self.dealer.hand.value
player_cards = len(self.player.hand.cards)
dealer_cards = len(self.dealer.hand.cards)
# Check player bust:
if player_value > 21:
self.player.chips -= bet
return "Player Lost" return "Player Lost"
elif self.dealer.hand.value > 21 and self.player.hand.value < 22: # Check dealer bust:
if dealer_value > 21:
self.player.chips += bet self.player.chips += bet
return "Player Wins" return "Player Wins"
elif self.dealer.hand.value < 22 and self.player.hand.value < 22:
# Checks for Blackjack
if self.player.hand.value == 21 and self.dealer.hand.value != 21:
return "Player Wins 3:2"
else:
if self.dealer.hand.value == 21:
if self.player.hand.value == 21:
return "Tie"
else:
return "Player Lost"
# Checks the values if either the Player busts or has # Check for Blackjack (21 with 2 cards)
# Blackjack
elif self.player.hand.value > self.dealer.hand.value: is_player_bj = player_value == 21 and player_cards == 2
return "Player Wins" is_dealer_bj = dealer_value == 21 and dealer_cards == 2
else:
if self.player.hand.value == self.dealer.hand.value: if is_player_bj and not is_dealer_bj:
return "Tie" self.player.chips += bet * 1.5
else: return "Player Wins 3:2"
return "Player Lost" elif is_dealer_bj:
self.player.chips -= bet
return "Player Lost"
# Check for normal values
if player_value > dealer_value:
self.player.chips += bet
return "Player Wins"
elif player_value < dealer_value:
self.player.chips -= bet
return "Player Lost"
else: else:
return "Values could not be compared." return "Tie"