diff --git a/blackjack.py b/blackjack.py index e846bae..8479c86 100755 --- a/blackjack.py +++ b/blackjack.py @@ -65,6 +65,8 @@ class Game(object): self.playdeck.put(first_card) starter = self.determine_start(first_card) print(f"{starter} to start!") + self.player_index = self.players.index(starter) + print("player index", self.player_index) def deal(self): for player in self.players: @@ -88,8 +90,22 @@ class Game(object): self.last_player = player return is_playable - #def play_combination(self, player, *cards): - # print(f"Player {player} attempting to play combination {cards}") + def play_combination(self, player, *cards): + print(f"Player {player} attempting to play combination {cards}") + last_card = self.playdeck.last_card + for index, card in enumerate(cards): + print("Combination iter", index, card) + # Special cards only active on last card + if index == len(cards)-1: + print("We are checking the last card") + special = True + else: + special = False + is_playable = self.rules.is_playable_on(last_card, card, special) + if not is_playable: + return False + last_card = card + self.play_card(player, card) class Player(object): @@ -156,7 +172,7 @@ class Deck(SetOfCards): def fill(self): for suit_str in "SHCD": values_str_10 = [str(x) for x in range(2, 11)] - for val_str in [*values_str_10, "J", "Q", "K", "A"]: + for val_str in [*values_str_10, *"JQKA"]: card_str = f"{suit_str}{val_str}" print("card_str", card_str) card = Card(card_str) @@ -251,8 +267,9 @@ class Rules(object): return True return False - def is_playable_on(self, bottom_card, card, special): + def is_playable_on(self, bottom_card, card, special, combination=False): print(f"Is playable on {bottom_card} {card}") + if special: if bottom_card in self.specials_power: print("Bottom card in specials all")