Beispiel #1
0
    def test_get_winner(self):
        self.shoe = Shoe(1)
        self.game = Game(self.shoe)
        self.card1 = Card(("10", "S", 1))
        self.card2 = Card(("7", "H", 2))
        self.card3 = Card(("K", "S", 1))
        self.card4 = Card(("9", "H", 2))
        self.game.player.hand_of_cards.append(self.card1)
        self.game.player.hand_of_cards.append(self.card2)
        self.game.dealer.hand_of_cards.append(self.card3)
        self.game.dealer.hand_of_cards.append(self.card4)
        self.game.dealer.update_status()
        self.game.player.update_status()
        self.assertEqual(self.game.get_winner(), "d")

        self.shoe = Shoe(1)
        self.game = Game(self.shoe)
        self.card1 = Card(("9", "S", 1))
        self.card2 = Card(("A", "H", 2))
        self.card3 = Card(("K", "S", 1))
        self.card4 = Card(("9", "H", 2))
        self.game.player.hand_of_cards.append(self.card1)
        self.game.player.hand_of_cards.append(self.card2)
        self.game.dealer.hand_of_cards.append(self.card3)
        self.game.dealer.hand_of_cards.append(self.card4)
        self.game.dealer.update_status()
        self.game.player.update_status()
        self.assertEqual(self.game.get_winner(), "p")
Beispiel #2
0
 def test_cards_left(self):
     self.shoe = Shoe(1)
     self.assertEqual(self.shoe.cards_left(), 52)
     self.shoe.hand_out_card()
     self.assertEqual(self.shoe.cards_left(), 51)
     self.shoe1 = Shoe(3)
     self.assertEqual(self.shoe1.cards_left(), 156)
Beispiel #3
0
class Blackjack:
    """ An environment for playing blacjack.  User will define the size of the
    deck shoe (in numbers of 52 card decks) and can then play hands of
    blackjack until the shoe runs out, or they opt ou

    Attributes
    ----------
    dealer_victories : int
        Number of hands won by the dealer
    player_victories : int
        Number of hands won by the player
    """

    def __init__(self):
        self.dealer_victories = 0
        self.player_victories = 0

    def sitting(self):
        try:
            print("\n")
            num_decks = int(input("How many decks would you like to use? "))
            print("\n")
            assert abs(num_decks) == num_decks
        except:
            print("Sorry, we need a positive integer.")
            return
        self.shoe = Shoe(num_decks)
        self.shoe.shuffle_shoe()
        another = 'y'       # Placeholder for "Opt Out" by player
        while True:
            self.game = Game(self.shoe)
            victor = self.game.play()
            if victor == 'p':
                print("You win!")
                print("\n")
                self.player_victories += 1
            elif victor == 'd':
                print("Dealer won.")
                print("\n")
                self.dealer_victories += 1
            else:
                print("Sorry, shoe is out of cards.")
                print("\n")
                break
            another = input("Would you like to play another? (y/n) ")
            print(chr(27) + "[2J")
            if another.lower().strip() == 'n':
                break
        print("\n")
        print("Dealer won: ", self.dealer_victories)
        print("You won: ", self.player_victories)
        print("\n")
Beispiel #4
0
 def test_merge_sort(self):
     self.shoe1 = Shoe(1)
     original_shoe = self.shoe1.cards[:]
     self.shoe1.shuffle_shoe()
     self.assertNotEqual(self.shoe1.cards, original_shoe)
     sorted_shoe = self.shoe1.merge_sort(self.shoe1.cards)
     self.assertEqual(sorted_shoe, original_shoe)
Beispiel #5
0
 def test_game(self):
     self.shoe = Shoe(1)
     self.shoe.shuffle_shoe()
     self.game = Game(self.shoe)
     self.game.deal()
     self.assertEqual(len(self.game.dealer.hand_of_cards), 2)
     self.assertEqual(len(self.game.player.hand_of_cards), 2)
Beispiel #6
0
 def sitting(self):
     try:
         print("\n")
         num_decks = int(input("How many decks would you like to use? "))
         print("\n")
         assert abs(num_decks) == num_decks
     except:
         print("Sorry, we need a positive integer.")
         return
     self.shoe = Shoe(num_decks)
     self.shoe.shuffle_shoe()
     another = 'y'       # Placeholder for "Opt Out" by player
     while True:
         self.game = Game(self.shoe)
         victor = self.game.play()
         if victor == 'p':
             print("You win!")
             print("\n")
             self.player_victories += 1
         elif victor == 'd':
             print("Dealer won.")
             print("\n")
             self.dealer_victories += 1
         else:
             print("Sorry, shoe is out of cards.")
             print("\n")
             break
         another = input("Would you like to play another? (y/n) ")
         print(chr(27) + "[2J")
         if another.lower().strip() == 'n':
             break
     print("\n")
     print("Dealer won: ", self.dealer_victories)
     print("You won: ", self.player_victories)
     print("\n")
Beispiel #7
0
class TestShoeClass(unittest.TestCase):
    def test_constructor(self):
        self.shoe = Shoe(1)

        self.assertEqual(len(self.shoe.cards), 52)

    def test_merge_sort(self):
        self.shoe1 = Shoe(1)
        original_shoe = self.shoe1.cards[:]
        self.shoe1.shuffle_shoe()
        self.assertNotEqual(self.shoe1.cards, original_shoe)
        sorted_shoe = self.shoe1.merge_sort(self.shoe1.cards)
        self.assertEqual(sorted_shoe, original_shoe)

    def test_cards_left(self):
        self.shoe = Shoe(1)
        self.assertEqual(self.shoe.cards_left(), 52)
        self.shoe.hand_out_card()
        self.assertEqual(self.shoe.cards_left(), 51)
        self.shoe1 = Shoe(3)
        self.assertEqual(self.shoe1.cards_left(), 156)
Beispiel #8
0
    def test_constructor(self):
        self.shoe = Shoe(1)

        self.assertEqual(len(self.shoe.cards), 52)
Beispiel #9
0
class TestGameClass(unittest.TestCase):
    def test_game(self):
        self.shoe = Shoe(1)
        self.shoe.shuffle_shoe()
        self.game = Game(self.shoe)
        self.game.deal()
        self.assertEqual(len(self.game.dealer.hand_of_cards), 2)
        self.assertEqual(len(self.game.player.hand_of_cards), 2)

    def test_eval_state(self):
        self.shoe = Shoe(1)
        self.game = Game(self.shoe)
        self.card1 = Card(("2", "S", 1))
        self.card2 = Card(("7", "H", 2))
        self.card3 = Card(("K", "S", 1))
        self.card4 = Card(("A", "H", 2))
        self.game.player.hand_of_cards.append(self.card1)
        self.game.player.hand_of_cards.append(self.card2)
        self.game.dealer.hand_of_cards.append(self.card3)
        self.game.dealer.hand_of_cards.append(self.card4)
        self.game.dealer.update_status()
        self.game.player.update_status()
        self.assertEqual(self.game.eval_state(), "d")

        self.shoe = Shoe(1)
        self.game = Game(self.shoe)
        self.card1 = Card(("K", "S", 1))
        self.card2 = Card(("A", "H", 2))
        self.card3 = Card(("7", "S", 1))
        self.card4 = Card(("10", "H", 2))
        self.game.player.hand_of_cards.append(self.card1)
        self.game.player.hand_of_cards.append(self.card2)
        self.game.dealer.hand_of_cards.append(self.card3)
        self.game.dealer.hand_of_cards.append(self.card4)
        self.game.dealer.update_status()
        self.game.player.update_status()
        self.assertEqual(self.game.eval_state(), "p")

    def test_get_winner(self):
        self.shoe = Shoe(1)
        self.game = Game(self.shoe)
        self.card1 = Card(("10", "S", 1))
        self.card2 = Card(("7", "H", 2))
        self.card3 = Card(("K", "S", 1))
        self.card4 = Card(("9", "H", 2))
        self.game.player.hand_of_cards.append(self.card1)
        self.game.player.hand_of_cards.append(self.card2)
        self.game.dealer.hand_of_cards.append(self.card3)
        self.game.dealer.hand_of_cards.append(self.card4)
        self.game.dealer.update_status()
        self.game.player.update_status()
        self.assertEqual(self.game.get_winner(), "d")

        self.shoe = Shoe(1)
        self.game = Game(self.shoe)
        self.card1 = Card(("9", "S", 1))
        self.card2 = Card(("A", "H", 2))
        self.card3 = Card(("K", "S", 1))
        self.card4 = Card(("9", "H", 2))
        self.game.player.hand_of_cards.append(self.card1)
        self.game.player.hand_of_cards.append(self.card2)
        self.game.dealer.hand_of_cards.append(self.card3)
        self.game.dealer.hand_of_cards.append(self.card4)
        self.game.dealer.update_status()
        self.game.player.update_status()
        self.assertEqual(self.game.get_winner(), "p")