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")
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)
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")
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_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 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")
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)
def test_constructor(self): self.shoe = Shoe(1) self.assertEqual(len(self.shoe.cards), 52)
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")