From 9094387d05edc47f84f035cc73534e0a6901d7e2 Mon Sep 17 00:00:00 2001 From: Lance Rogers Date: Wed, 3 Jun 2015 00:12:45 -0400 Subject: [PATCH 1/8] I left my charger at school so this is all I got in to the computer by the time it was as 3% --- CardsAndDecks.py | 14 ++++++++++++++ DealerHand.py | 0 Game.py | 0 HitOrStand.py | 4 ++++ PlayerHand.py | 0 5 files changed, 18 insertions(+) create mode 100644 CardsAndDecks.py create mode 100644 DealerHand.py create mode 100644 Game.py create mode 100644 HitOrStand.py create mode 100644 PlayerHand.py diff --git a/CardsAndDecks.py b/CardsAndDecks.py new file mode 100644 index 0000000..fec195d --- /dev/null +++ b/CardsAndDecks.py @@ -0,0 +1,14 @@ +class CardsAndDecks(): + +# define card constants (FACE_VALUES, SUITS) +# create deck with list comprehension +# deck = ["{0} of {1}".format(f, s) for f in FACE for s in SUITS] +# shuflle the deck with shuffle(deck) +# ask if game is new (which is a boolean) if game new is True shuflle deck +# return hands +# shuffled deck will be assigned new variable = deck_cache +# hands are taken from deck_cache and each card taken is subtracted from the deck +# if a dealer, or player hits, then the card given is also subtracted from deck_cache + +# from random import shuffle (to shuffle the deck) +# define point values diff --git a/DealerHand.py b/DealerHand.py new file mode 100644 index 0000000..e69de29 diff --git a/Game.py b/Game.py new file mode 100644 index 0000000..e69de29 diff --git a/HitOrStand.py b/HitOrStand.py new file mode 100644 index 0000000..1cabb8b --- /dev/null +++ b/HitOrStand.py @@ -0,0 +1,4 @@ +# hit == True +# stand == False +# if True take card from deck_cache in CardsAndDecks +# diff --git a/PlayerHand.py b/PlayerHand.py new file mode 100644 index 0000000..e69de29 From 00c108b265f06990ac36c59b55108e8b0d872314 Mon Sep 17 00:00:00 2001 From: Lance Rogers Date: Thu, 4 Jun 2015 04:11:39 -0400 Subject: [PATCH 2/8] added import random --- CardsAndDecks.py | 14 ------- DealerHand.py | 0 Game.py | 0 HitOrStand.py | 4 -- PlayerHand.py | 0 blackjack.py | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 96 insertions(+), 18 deletions(-) delete mode 100644 CardsAndDecks.py delete mode 100644 DealerHand.py delete mode 100644 Game.py delete mode 100644 HitOrStand.py delete mode 100644 PlayerHand.py create mode 100644 blackjack.py diff --git a/CardsAndDecks.py b/CardsAndDecks.py deleted file mode 100644 index fec195d..0000000 --- a/CardsAndDecks.py +++ /dev/null @@ -1,14 +0,0 @@ -class CardsAndDecks(): - -# define card constants (FACE_VALUES, SUITS) -# create deck with list comprehension -# deck = ["{0} of {1}".format(f, s) for f in FACE for s in SUITS] -# shuflle the deck with shuffle(deck) -# ask if game is new (which is a boolean) if game new is True shuflle deck -# return hands -# shuffled deck will be assigned new variable = deck_cache -# hands are taken from deck_cache and each card taken is subtracted from the deck -# if a dealer, or player hits, then the card given is also subtracted from deck_cache - -# from random import shuffle (to shuffle the deck) -# define point values diff --git a/DealerHand.py b/DealerHand.py deleted file mode 100644 index e69de29..0000000 diff --git a/Game.py b/Game.py deleted file mode 100644 index e69de29..0000000 diff --git a/HitOrStand.py b/HitOrStand.py deleted file mode 100644 index 1cabb8b..0000000 --- a/HitOrStand.py +++ /dev/null @@ -1,4 +0,0 @@ -# hit == True -# stand == False -# if True take card from deck_cache in CardsAndDecks -# diff --git a/PlayerHand.py b/PlayerHand.py deleted file mode 100644 index e69de29..0000000 diff --git a/blackjack.py b/blackjack.py new file mode 100644 index 0000000..80b6566 --- /dev/null +++ b/blackjack.py @@ -0,0 +1,96 @@ +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 Hand(): + hand = [] + + + + def __init__(self, hand): + self.hand = hand + + + +class Player(): + player_hand = [] + + player_points = 0 + + def __init__(self): + pass + + 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 cards in self.player_hand: + if "Ace" in self.player_hand: + 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 cards in face.range(0,11): + self.player_points + int(cards) + + + + + +class Dealer(): + face = Hand.face + dealer_hand = [] + dealer_points = 0 + self.dealer_hand = dealer_hand + def __init__(self): + pass + def __str__(self, dealer_hand, dealer_points): + return "Dealers card: {}" + dealer_hand.index(0) + def dealer_rules(self): + for cards in dealer_hand: + if "Ace" in self.dealer_hand: + if self.dealer_points <= 10: + self.dealer_points + 11 + else: + self.dealer_points + 1 + elif "Jack" or "Queen" or "King": + self.dealer_points + 10 + elif cards in face.range(0,11): + self.dealer_points + int(cards) + + + + + + +# class Game: + +# game_deck = Deck.shuffled_deck + + +# def game_over(self): From ee0eedc2a50d94213f0ac6e244d3a76d983777d3 Mon Sep 17 00:00:00 2001 From: Lance Rogers Date: Thu, 4 Jun 2015 08:40:22 -0400 Subject: [PATCH 3/8] fixed rules --- blackjack.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/blackjack.py b/blackjack.py index 80b6566..d98f6ec 100644 --- a/blackjack.py +++ b/blackjack.py @@ -55,8 +55,9 @@ def player_rules(self, player_hand): 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 cards in face.range(0,11): - self.player_points + int(cards) + elif range(face(2,11)) in self.player_hand: + self.player_points = self.player_points + int(player_hand[0]) + @@ -80,8 +81,8 @@ def dealer_rules(self): self.dealer_points + 1 elif "Jack" or "Queen" or "King": self.dealer_points + 10 - elif cards in face.range(0,11): - self.dealer_points + int(cards) + elif range(face(2,11)) in self.dealer_hand: + self.dealer_points = self.dealer_points + int(dealer_hand[0]): From adb289097a7239150233c10611cf6b79b7db3415 Mon Sep 17 00:00:00 2001 From: Lance Rogers Date: Fri, 5 Jun 2015 09:45:41 -0400 Subject: [PATCH 4/8] Commit --- blackjack.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/blackjack.py b/blackjack.py index d98f6ec..ae462da 100644 --- a/blackjack.py +++ b/blackjack.py @@ -64,14 +64,15 @@ def player_rules(self, player_hand): class Dealer(): - face = Hand.face + face = Cards.face dealer_hand = [] dealer_points = 0 - self.dealer_hand = dealer_hand + def __init__(self): pass def __str__(self, dealer_hand, dealer_points): return "Dealers card: {}" + dealer_hand.index(0) + def dealer_rules(self): for cards in dealer_hand: if "Ace" in self.dealer_hand: @@ -82,7 +83,7 @@ def dealer_rules(self): elif "Jack" or "Queen" or "King": self.dealer_points + 10 elif range(face(2,11)) in self.dealer_hand: - self.dealer_points = self.dealer_points + int(dealer_hand[0]): + self.dealer_points = self.dealer_points + int(dealer_hand[0]) From 432444c324f5f69a17399f5618a2e5e511eb11c0 Mon Sep 17 00:00:00 2001 From: Lance Rogers Date: Sat, 6 Jun 2015 17:15:40 -0400 Subject: [PATCH 5/8] Commit --- blackjack.py | 72 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 21 deletions(-) diff --git a/blackjack.py b/blackjack.py index ae462da..f9d6bce 100644 --- a/blackjack.py +++ b/blackjack.py @@ -17,15 +17,6 @@ class Deck(): -class Hand(): - hand = [] - - - - def __init__(self, hand): - self.hand = hand - - class Player(): player_hand = [] @@ -33,6 +24,8 @@ class Player(): player_points = 0 def __init__(self): + self.player_hand = player_hand + self.player_points = player_points pass def __str__(self): @@ -47,8 +40,8 @@ def player_rules(self, player_hand): face = Cards.face - for cards in self.player_hand: - if "Ace" in self.player_hand: + 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. ") @@ -57,7 +50,7 @@ def player_rules(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 @@ -68,31 +61,68 @@ class Dealer(): dealer_hand = [] dealer_points = 0 + def __init__(self): - pass + self.dealer_hand = dealer_hand + self.dealer_points = dealer_points + def __str__(self, dealer_hand, dealer_points): return "Dealers card: {}" + dealer_hand.index(0) def dealer_rules(self): - for cards in dealer_hand: - if "Ace" in self.dealer_hand: + 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": + elif "Jack" or "Queen" or "King" in card: self.dealer_points + 10 - elif range(face(2,11)) in self.dealer_hand: - self.dealer_points = self.dealer_points + int(dealer_hand[0]) + elif range(face(2,11)) in card: + self.dealer_points = self.dealer_points + int(card[0]) + + + + + +class Game: + + game_deck = Deck.shuffled_deck + + new_game = False + + def __init__(self): + + self.player = Player() + self.dealer = Dealer() + + def start_game(self): + 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 + + while self.dealer_points <= 16: + self.dealer.dealer_hand = self.dealer.dealer_hand + self.game_deck.pop() + + while self.player_points <= 21: + + + + + + + def end_game(self): + pass -# class Game: -# game_deck = Deck.shuffled_deck -# def game_over(self): From b9f016f9f7b1eb01315dfe4e8fe8fa30334753a3 Mon Sep 17 00:00:00 2001 From: Lance Rogers Date: Sat, 6 Jun 2015 17:27:41 -0400 Subject: [PATCH 6/8] Hit or stay written --- blackjack.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/blackjack.py b/blackjack.py index f9d6bce..42acf31 100644 --- a/blackjack.py +++ b/blackjack.py @@ -105,14 +105,26 @@ def start_game(self): 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.append(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.append(self.game_deck.pop()) + elif player_decision == 'S': + stay = True + else: + print("Invalid answer please press hit or stay") + + - while self.dealer_points <= 16: - self.dealer.dealer_hand = self.dealer.dealer_hand + self.game_deck.pop() - while self.player_points <= 21: - From f786d6e0b98c82b6bdb788fe53629470ea563c95 Mon Sep 17 00:00:00 2001 From: Lance Rogers Date: Sat, 6 Jun 2015 22:30:37 -0400 Subject: [PATCH 7/8] main class started --- blackjack.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/blackjack.py b/blackjack.py index 42acf31..8fb2b6e 100644 --- a/blackjack.py +++ b/blackjack.py @@ -96,6 +96,7 @@ def __init__(self): self.player = Player() self.dealer = Dealer() + self.start_game() def start_game(self): self.new_game = True @@ -113,26 +114,20 @@ def hit_or_stay(self): 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: + if player_decision == 'H': self.player.player_hand = self.player.player_hand.append(self.game_deck.pop()) elif player_decision == 'S': stay = True else: print("Invalid answer please press hit or stay") - - - - - def end_game(self): - pass - - - +class Main: + + game = Game() From 2f6694dc65a3b1bf8456612797536250dc85ce52 Mon Sep 17 00:00:00 2001 From: Lance Rogers Date: Sat, 6 Jun 2015 23:08:05 -0400 Subject: [PATCH 8/8] Starting to test --- blackjack.py | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/blackjack.py b/blackjack.py index 8fb2b6e..b43aa9f 100644 --- a/blackjack.py +++ b/blackjack.py @@ -19,14 +19,12 @@ class Deck(): class Player(): - player_hand = [] - player_points = 0 def __init__(self): - self.player_hand = player_hand - self.player_points = player_points - pass + self.player_hand = [] + self.player_points = 0 + def __str__(self): return "Your cards: {} \n Your points: ".format(self.player_hand, self.player_points) @@ -58,13 +56,12 @@ def player_rules(self, player_hand): class Dealer(): face = Cards.face - dealer_hand = [] - dealer_points = 0 + def __init__(self): - self.dealer_hand = dealer_hand - self.dealer_points = dealer_points + self.dealer_hand = [] + self.dealer_points = 0 def __str__(self, dealer_hand, dealer_points): return "Dealers card: {}" + dealer_hand.index(0) @@ -88,34 +85,47 @@ def dealer_rules(self): class Game: - game_deck = Deck.shuffled_deck + def __init__(self): + + + + + self.game_deck = Deck.shuffled_deck + + + + + self.new_game = False - new_game = False - def __init__(self): 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.append(self.game_deck.pop()) + 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.append(self.game_deck.pop()) + self.player.player_hand = self.player.player_hand + self.game_deck.pop() elif player_decision == 'S': stay = True else: @@ -126,10 +136,13 @@ def hit_or_stay(self): class Main: - - game = Game() - + def __init__(self): + self.dealer = Dealer() + self.player = Player() + self.game = Game() +game = Main() +game \ No newline at end of file