changes to card game
This commit is contained in:
parent
add4b42d12
commit
c467e7b98c
@ -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
|
||||
|
@ -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()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user