diff --git a/OOP/Card Game/main.py b/OOP/Card Game/main.py index a0d0f02..2897f18 100644 --- a/OOP/Card Game/main.py +++ b/OOP/Card Game/main.py @@ -1,6 +1,7 @@ # Python OOP implementation of blackjack. from random import choice +from os import system, name as os_name class Card: def __init__(self): @@ -26,8 +27,19 @@ class Player: print(f"{self.name}'s cards:") for card in self.cards: print(f"> {card.value} of {card.suit}") + print(f"Total: {self.total()}") print() + def total(self): + values = {"Ace": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7":7, "8": 8, "9": 9, "10": 10, "Jack": 10, "Queen": 10, "King": 10} + aces_in_cards = 0 + total = 0 + for card in self.cards: + total += values[card.value] + if card.value == "Ace": + aces_in_cards += 1 + return total if aces_in_cards == 0 else (total, total+(10*aces_in_cards)) + class Dealer(Player): def __init__(self): @@ -41,10 +53,12 @@ class Dealer(Player): 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)}") print() @@ -55,10 +69,12 @@ class Game: self.players.append(Player(player_num+1)) self.deal_cards() + def main_loop(self): + system("cls" if os_name == "nt" else "clear") + for player in self.players: player.show_cards(self.players) - def deal_cards(self): for player in self.players: for _ in range(2): @@ -68,3 +84,10 @@ class Game: if __name__ == "__main__": game = Game() + game.main_loop() + +# TODO: +# - Fix the dealer being passed the players attribute +# - Win checking +# - Player choice (hit, stand) +# - Dealers turn diff --git a/OOP/Knights/main.py b/OOP/Knights/main.py index c87f26b..6dcb237 100644 --- a/OOP/Knights/main.py +++ b/OOP/Knights/main.py @@ -1,6 +1,6 @@ from random import choice, randint from time import sleep -from os import system +from os import system, name as os_name class Color: red = "\033[91m" @@ -45,7 +45,7 @@ class Game: def gameloop(self): while self.PLAYERS[0].health > 0 and self.PLAYERS[1].health > 0: - system("cls" if name == "nt" else "clear") + system("cls" if os_name == "nt" else "clear") print(f"{Color.cyan}-----------------------------------------------{Color.norm}") for player in self.PLAYERS: @@ -69,7 +69,7 @@ class Game: player.update_health(player) sleep(1) - system("cls" if name == "nt" else "clear") + system("cls" if os_name == "nt" else "clear") self.game_end()