From 197572567a65ebd398ada5c4ecf5c785a93ca9a0 Mon Sep 17 00:00:00 2001 From: cerberus Date: Wed, 29 Oct 2025 21:01:03 +0100 Subject: [PATCH] made it functional --- src/pyjack/game.py | 55 ++++++++++++++++++++++++++++++++++++++++++++-- src/pyjack/hand.py | 4 ++++ src/pyjack/main.py | 15 ++++++++----- 3 files changed, 66 insertions(+), 8 deletions(-) diff --git a/src/pyjack/game.py b/src/pyjack/game.py index dd87c92..54b1a27 100644 --- a/src/pyjack/game.py +++ b/src/pyjack/game.py @@ -1,4 +1,3 @@ -import re from pyjack.dealer import Dealer from pyjack.deck import Deck from pyjack.player import Player @@ -65,18 +64,70 @@ class Game: second card is shown or concealed.""" player_cards = self.player.hand.cards + player_hand = self.player.hand dealer_cards = self.dealer.hand.cards + dealer_hand = self.dealer.hand print("--Player Cards:--") for card in player_cards: print(str(card)) + print(f"Hand value: {player_hand.value}") if hide_dealer: card = dealer_cards[0] print("--Dealer Cards:--") print(str(card)) - print("XXXX") + print("XXXX\n") else: print("--Dealer Cards:--") for card in dealer_cards: print(str(card)) + print(f"Hand value: {dealer_hand.value}\n") + + def show_player_cards(self) -> None: + """Displays the players hand""" + player_cards = self.player.hand.cards + player_hand = self.player.hand + + print("--Player Cards:--") + for card in player_cards: + print(str(card)) + print(f"Hand value: {player_hand.value}") + + def play_round(self) -> None: + """Logic of a game round""" + + # Simplify value calls: + + deck = self.deck + + player = self.player + dealer = self.dealer + + # beginning of a round, shuffle deck and deal cards + + deck.shuffle() + + player.hand.add_card(deck.deal_card()) + player.hand.add_card(deck.deal_card()) + dealer.hand.add_card(deck.deal_card()) + dealer.hand.add_card(deck.deal_card()) + + self.show_cards(hide_dealer=True) + player_turn = True + while player_turn: + if input("Do you want another card? [y] ") == "y": + player.hit(deck) + self.show_player_cards() + else: + print("\n") + player.stand() + player_turn = False + + # self.show_cards() + dealer.play(deck) + self.show_cards() + + print(self.compare_hands(0)) + player.hand.clear_hand() + dealer.hand.clear_hand() diff --git a/src/pyjack/hand.py b/src/pyjack/hand.py index 2d5eea0..cdc32f2 100644 --- a/src/pyjack/hand.py +++ b/src/pyjack/hand.py @@ -32,3 +32,7 @@ class Hand: if self.value > 21 and self.aces > 0: self.value -= 10 self.aces -= 1 + + def clear_hand(self) -> None: + """Clears the hand""" + self.cards = [] diff --git a/src/pyjack/main.py b/src/pyjack/main.py index f9fe8b9..c56a647 100644 --- a/src/pyjack/main.py +++ b/src/pyjack/main.py @@ -1,9 +1,12 @@ -from pyjack.player import Player -from pyjack.dealer import Dealer -from pyjack.card import Card -from pyjack.hand import Hand -from pyjack.deck import Deck +import os from pyjack.game import Game + if __name__ == "__main__": - print("Hello World!") + os.system("clear") + print("pyjack by cerberus") + print("do you wanna play a round??") + + game = Game() + + game.play_round()