From b0882de943bda5bd60e9414807b46298d2ac0d95 Mon Sep 17 00:00:00 2001 From: RetroEvelyne Date: Tue, 25 Apr 2023 14:10:18 +0100 Subject: [PATCH] Fixed passing 'players' list to other classes --- OOP/Card Game/main.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/OOP/Card Game/main.py b/OOP/Card Game/main.py index 2897f18..acca00e 100644 --- a/OOP/Card Game/main.py +++ b/OOP/Card Game/main.py @@ -23,7 +23,7 @@ class Player: # Then the dealer can take his cards self.done = False - def show_cards(self, players): + def show_cards(self): print(f"{self.name}'s cards:") for card in self.cards: print(f"> {card.value} of {card.suit}") @@ -46,16 +46,15 @@ class Dealer(Player): super().__init__(self) self.name = "dealer" - def show_cards(self, players): + def show_cards(self, game): print(f"{self.name}'s cards:") - for player in players[1:]: - if player.done is False: - print(f"> {self.cards[0].value} of {self.cards[0].suit}") - for card in self.cards[1:]: - print(f"> HIDDEN") - print(f"Total: UNKNOWN") - print() - return + if not game.players_are_done(): + print(f"> {self.cards[0].value} of {self.cards[0].suit}") + for card in self.cards[1:]: + print(f"> HIDDEN") + print(f"Total: UNKNOWN") + print() + return for card in self.cards: print(f"> {card.value} of {card.suit}") print(f"Total: {super().total(self)}") @@ -72,14 +71,23 @@ class Game: def main_loop(self): system("cls" if os_name == "nt" else "clear") - for player in self.players: - player.show_cards(self.players) + self.overview() def deal_cards(self): for player in self.players: for _ in range(2): player.cards.append(Card()) + def overview(self): + self.players[0].show_cards(self) + for player in self.players[1:]: + player.show_cards() + + def players_are_done(self): + for player in self.players[1:]: + if not player.done: + return False + return True if __name__ == "__main__": @@ -87,7 +95,6 @@ if __name__ == "__main__": game.main_loop() # TODO: -# - Fix the dealer being passed the players attribute # - Win checking # - Player choice (hit, stand) # - Dealers turn