def test_split(self): hand = Hand(1) hand.addCard(Card(0, 1)) hand.addCard(Card(1, 1)) deck = HandTest.FakeDeck() self.assertTrue(hand.canSplit()) self.assertFalse(hand.isSplit()) splitHands = hand.split(deck) self.assertEqual(1, splitHands[0].getBet()) self.assertEqual(1, splitHands[1].getBet()) self.assertTrue(splitHands[0].isSplit()) self.assertTrue(splitHands[1].isSplit()) self.assertFalse(splitHands[0].canSplit()) self.assertFalse(splitHands[1].canSplit()) self.assertEqual(hand.getCards()[0], splitHands[0].getCards()[0]) self.assertEqual(Card(3, 0), splitHands[0].getCards()[1]) self.assertEqual(hand.getCards()[1], splitHands[1].getCards()[0]) self.assertEqual(Card(3, 1), splitHands[1].getCards()[1]) hand = Hand(1) hand.addCard(Card(0, 1)) hand.addCard(Card(1, 1)) hand.addCard(Card(2, 1)) self.assertFalse(hand.canSplit())
def deal(): """ Returns void Deals cards, and checks for splitting """ while True: try: wager = int(input("Place wager: ")) if 1 <= wager <= balance: break else: print( "!! Invalid Choice!! Please pick a number between 1 and %d" % balance) except ValueError: print("!! Invalid Choice!! Please pick a number between 1 and %d" % balance) deck = Deck() player = Hand() dealer = Hand() # deal two cards each for player and dealer for i in range(2): player.addCard(deck.dealCard()) dealer.addCard(deck.dealCard()) card_1 = player.getCard(0) card_2 = player.getCard(1) upcard = dealer.getCard(0) utils.printStatus(upcard, player) # check for splitting if player.canSplit(): while True: choice = input("Would you like to Split (Y / N): ").upper() if choice == "Y": if balance < wager * 2: print("Inadequate balance :(") else: print("Splitting into two hands. \nHand #1") player = Hand() player.addCard(card_1) player.addCard(deck.dealCard()) utils.printStatus(upcard, player) engine(player, dealer, deck, wager) # checks for adequate balance if balance >= wager: print("Hand #2") player = Hand() dealer = Hand() player.addCard(card_2) player.addCard(deck.dealCard()) for i in range(2): dealer.addCard(deck.dealCard()) upcard = dealer.getCard(0) utils.printStatus(upcard, player) engine(player, dealer, deck, wager) else: print("Inadequate balance. Unable to play Hand #2 :(") break elif choice == "N": engine(player, dealer, deck, wager) break else: print("!! Invalid Choice !! Please choose one of (Y / N)") else: engine(player, dealer, deck, wager)