diff --git a/Card_file.py b/Card_file.py new file mode 100644 index 0000000..6ce2691 --- /dev/null +++ b/Card_file.py @@ -0,0 +1,36 @@ +class Card: + def count(self, hand, person): + self.counter = 0 + for card in hand: + if card[0] == 'A' or card[1] == 'A' and person == "player": + self.to_do = input("11 or 1 ") + if self.to_do == '11': + self.counter += 11 + else: + self.counter += 1 + elif card[0] == 'A' or card[1] == 'A': + self.counter += 11 + else: + if card[0].isupper(): + self.counter += 10 + if card[1].isupper(): + self.counter += 10 + if card[0].isdigit(): + self.counter += int(card[0]) + if card[1].isdigit(): + self.counter += int(card[1]) + # print("Your count is ", self.counter) + if self.counter == 21 and person == "player": + print("blackjack") + exit() + elif self.counter > 21 and person == "player": + print("Lose") + exit() + elif self.counter == 21 and person == "dealer": + print("Dealer Wins because of blackjack") + exit() + elif self.counter > 21 and person == "dealer": + print("You Win dealer busted at ", self.counter) + exit() + + # add together check if they go over 21 or equal 21 diff --git a/Dealer_file.py b/Dealer_file.py new file mode 100644 index 0000000..18ff703 --- /dev/null +++ b/Dealer_file.py @@ -0,0 +1,17 @@ +import Deck_file +from Deck_file import Deck +import Card_file +from Card_file import Card + + +class Dealer(): + + def dealer_run(self): + # if self.check_16(hand): + # pass + hitme("dealer") + new_card.count(hand, "dealer") + + """def check_16(self): + if check_hand(hand) == 16: + return False""" diff --git a/Deck_file.py b/Deck_file.py new file mode 100644 index 0000000..e0261d7 --- /dev/null +++ b/Deck_file.py @@ -0,0 +1,47 @@ +import random +import itertools + + +class Deck: + def remove_from_deck(self, remove): + try: + self.deck.remove(remove[0]) + self.deck.remove(remove[1]) + return self.deck + except: + pass + + def shuffle(self): + self.suits = 'cdhs' + self.rank = '23456789TJQKA' + self.deck = list(''.join(card) for card in itertools.product( + self.suits, self.rank)) + return self.deck + + def init_deal(self): + self.hand = random.sample(self.deck, 2) + self.deck = self.remove_from_deck(self.hand) + self.dealer_hand = random.sample(self.deck, 2) + self.deck = self.remove_from_deck(self.dealer_hand) + print("This is your hand", self.hand) + return (self.hand) + + def hitme(self, person): + self.deal = random.choice(self.deck) + if person == "dealer": + self.dealer_hand.append(self.deal) + # print("This is your hand", self.dealer_hand) + if person == "player": + self.hand.append(self.deal) + print("This is your hand", self.hand) + + def ask(self): + self.hit_me_or = input("Hit me? or Stay? ") + self.hit_me_or.lower() + if self.hit_me_or == "hit me": + self.hitme("player") + elif self.hit_me_or == "stay": + pass + else: + print("Hit me or Stay") + self.ask() diff --git a/Game.py b/Game.py new file mode 100644 index 0000000..5ca6e05 --- /dev/null +++ b/Game.py @@ -0,0 +1,29 @@ +import Deck_file +from Deck_file import Deck +import Card_file +from Card_file import Card +import Dealer_file +from Dealer_file import Dealer +import random +# import Hand +# from Hand import Hand + +new_card = Card() +new_dealer = Dealer() +new_deck = Deck() +new_deck.shuffle() +new_deck.init_deal() + +while True: + dealer = random.random() + new_deck.ask() + new_card.count(new_deck.hand, "player") + + print("Your card add up to ", new_card.counter) + if dealer >= .5: + new_deck.hitme("dealer") + if dealer < .5: + print("Dealer Stayed") + + new_card.count(new_deck.dealer_hand, "dealer") + print("Your dealer card add up to ", new_card.counter) diff --git a/Hand.py b/Hand.py new file mode 100644 index 0000000..f294f2f --- /dev/null +++ b/Hand.py @@ -0,0 +1,16 @@ +import Deck_file +from Deck_file import Deck +import Card_file +from Card_file import Card +import Dealer_file +from Dealer_file import Dealer + + +class Hand: + new_deck = Deck() + new_deck.shuffle() + self.dealer_hand = new_deck.init_deal() + + def player_going: + new_deck.ask() + self.player_hand = new_deck.init_deal() diff --git a/README.md b/README.md index e5d7b00..3c2275f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # Blackjack - +Learned more about Object Oriented Programming * [Part 1](README_1.md) -* [Part 2](README_2.md) \ No newline at end of file +* [Part 2](README_2.md) diff --git a/Tests.py b/Tests.py new file mode 100644 index 0000000..5776d1c --- /dev/null +++ b/Tests.py @@ -0,0 +1,38 @@ +import Deck_file +from Deck_file import Deck +import Card_file +from Card_file import Card + +new_deck = Deck() +new_card = Card() +new_deck.shuffle() + + +def test_init_deck(): + try: + assert len(new_deck.init_deal()) == 2 + assert len(new_deck.init_deal()[0]) == 2 + return new_deck.init_deal() + except: + print("init_deal isn't working") + + +def test_init_hitme(hand): + try: + assert len(hand) == 3 + assert len(hand[0]) == 2 + except: + print("Hit Me isnt working") + + +def test_card(hand): + try: + print("Enter 11 for test") + assert new_card.count(hand) == "lose" + except: + print("Card.count isnt working") + +# new_deck.hitme(new_deck.init_deal(shuffled)) +test_init_deck() +test_init_hitme(new_deck.hitme()) +test_card(['cT', 'A', 'd6']) diff --git a/blackjack/tests/Tests.py b/blackjack/tests/Tests.py new file mode 100644 index 0000000..638cce0 --- /dev/null +++ b/blackjack/tests/Tests.py @@ -0,0 +1,24 @@ +import Deck_file +from Deck_file import Deck + + +def test_init_deck(): + new_deck = Deck() + # print(len(new_deck.init_deal()[0])) + try: + assert len(new_deck.init_deal()) == 2 + assert len(new_deck.init_deal()[0]) == 2 + except: + print("init_deal isn't working") + + +def test_init_hitme(): + hitme = hitme() + try: + assert len(hitme.hitme()) == 1 + assert len(hitme.hitme()[0]) == 2 + except: + print("init_deal isn't working") + +test_init_deck() +test_init_hitme() diff --git a/blackjack/tests/__init__.py b/blackjack/tests/__init__.py new file mode 100644 index 0000000..e69de29