redid Game.compare_hands() method
This commit is contained in:
@@ -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
|
# Check for Blackjack (21 with 2 cards)
|
||||||
if self.player.hand.value == 21 and self.dealer.hand.value != 21:
|
|
||||||
|
is_player_bj = player_value == 21 and player_cards == 2
|
||||||
|
is_dealer_bj = dealer_value == 21 and dealer_cards == 2
|
||||||
|
|
||||||
|
if is_player_bj and not is_dealer_bj:
|
||||||
|
self.player.chips += bet * 1.5
|
||||||
return "Player Wins 3:2"
|
return "Player Wins 3:2"
|
||||||
else:
|
elif is_dealer_bj:
|
||||||
if self.dealer.hand.value == 21:
|
self.player.chips -= bet
|
||||||
if self.player.hand.value == 21:
|
|
||||||
return "Tie"
|
|
||||||
else:
|
|
||||||
return "Player Lost"
|
return "Player Lost"
|
||||||
|
|
||||||
# Checks the values if either the Player busts or has
|
# Check for normal values
|
||||||
# Blackjack
|
if player_value > dealer_value:
|
||||||
elif self.player.hand.value > self.dealer.hand.value:
|
self.player.chips += bet
|
||||||
return "Player Wins"
|
return "Player Wins"
|
||||||
else:
|
|
||||||
if self.player.hand.value == self.dealer.hand.value:
|
elif player_value < dealer_value:
|
||||||
return "Tie"
|
self.player.chips -= bet
|
||||||
else:
|
|
||||||
return "Player Lost"
|
return "Player Lost"
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return "Values could not be compared."
|
return "Tie"
|
||||||
|
|||||||
Reference in New Issue
Block a user