diff --git a/blackjack.py b/blackjack.py new file mode 100644 index 0000000..b43aa9f --- /dev/null +++ b/blackjack.py @@ -0,0 +1,148 @@ +import random + +class Cards(): + face = list(range(2,11)) + "Jack Queen King Ace".split() + suits = "Diamonds Clubs Hearts Spades".split() + + +class Deck(): + # list comprehension takes from face and suits and asigns all faces to each suit + ordered = [["{0} of {1}".format(fv, s)] for fv in Cards.face for s in Cards.suits] + + # second list comprehenison holds value here + # dont think this is neccassary but im tired and its not throwing any errors + deck = [x for x in ordered] + shuffled_deck = random.sample(deck, 52) + + + + + +class Player(): + + + def __init__(self): + self.player_hand = [] + self.player_points = 0 + + + def __str__(self): + return "Your cards: {} \n Your points: ".format(self.player_hand, self.player_points) + + + def player_hand(self): + self.player_hand = player_hand + + + def player_rules(self, player_hand): + + face = Cards.face + + for card in self.player_hand: + if "Ace" in card: + ace_decision = input("You have an ace please enter 1 or 11 ") + while ace_decision != 1 or 11: + ace_decision = input("Please enter 1 or 11 you drunk bastard. ") + self.player_points = self.player_points + ace_decision + elif "Jack" or "Queen" or "King" in self.player_hand: + self.player_points = self.player_points + 10 + elif range(face(2,11)) in self.player_hand: + self.player_points = self.player_points + int(player_hand[0]) + return self.player_points + + + + + +class Dealer(): + face = Cards.face + + + + def __init__(self): + self.dealer_hand = [] + self.dealer_points = 0 + + def __str__(self, dealer_hand, dealer_points): + return "Dealers card: {}" + dealer_hand.index(0) + + def dealer_rules(self): + for card in self.dealer_hand: + if "Ace" in card: + if self.dealer_points <= 10: + self.dealer_points + 11 + else: + self.dealer_points + 1 + elif "Jack" or "Queen" or "King" in card: + self.dealer_points + 10 + elif range(face(2,11)) in card: + self.dealer_points = self.dealer_points + int(card[0]) + + + + + + +class Game: + + def __init__(self): + + + + + self.game_deck = Deck.shuffled_deck + + + + + self.new_game = False + + + + self.player = Player() + + self.dealer = Dealer() + + self.start_game() + #self.hit_or_stay() + + def start_game(self): + print("Welcome to BlackJack") + self.new_game = True + self.dealer.dealer_hand = self.dealer.dealer_hand.append(self.game_deck.pop()+self.game_deck.pop()) + self.player.player_hand = self.player.player_hand.append(self.game_deck.pop()+self.game_deck.pop()) + + def hit_or_stay(self): + + self.player_points = self.player.player_points + self.dealer_points = self.dealer.dealer_points + game_over = False + stay = False + + while self.dealer_points <= 16 and game_over == False: + self.dealer.dealer_hand = self.dealer.dealer_hand + self.game_deck.pop() + + while self.player_points < 21 and stay == False and game_over == False: + player_decision = input("[H]it or [S]tay? Please type H or S. ").upper() + if player_decision == 'H': + self.player.player_hand = self.player.player_hand + self.game_deck.pop() + elif player_decision == 'S': + stay = True + else: + print("Invalid answer please press hit or stay") + + + + + +class Main: + + def __init__(self): + + self.dealer = Dealer() + self.player = Player() + self.game = Game() + + +game = Main() +game \ No newline at end of file