def end_hand(self): if len(self.cards) == 0: return self.hand_hidden = False message = "" #case for player bust: if Rulebook.check_bust( Rulebook.check_hand_value(self.player.get_cards())): message = "Player busts! Dealer wins." #case for dealer bust: elif Rulebook.check_bust(Rulebook.check_hand_value(self.cards)): message = "Dealer busts! Player wins." #case for player beating dealer: elif Rulebook.check_player_win( Rulebook.check_hand_value(self.cards), Rulebook.check_hand_value(self.player.get_cards())): message = "Player wins!" #case for dealer beating player: elif Rulebook.check_dealer_win( Rulebook.check_hand_value(self.cards), Rulebook.check_hand_value(self.player.get_cards())): message = "Dealer wins!" #case for tie else: message = "Tie!" self.update_view(message) #Reset cards self.cards = [] self.player.collect_cards()
def make_dealer_move(self): if len(self.cards) == 0: return if Rulebook.check_dealer_hit(Rulebook.check_hand_value(self.cards)): self.cards.append(self.deck.draw_card()) if Rulebook.check_bust(Rulebook.check_hand_value(self.cards)): self.end_hand() return self.update_view() self.make_dealer_move()
def get_player_move(self): print("Hit? [Y/N]") option = input() if option.upper() == "Y": self.player.add_card(self.deck.draw_card()) if not Rulebook.check_bust( Rulebook.check_hand_value(self.player.get_cards())): self.update_view() self.get_player_move() else: self.end_hand()
def test_check_bust_true(self): score = "22" self.assertTrue(Rulebook.check_bust(score))
def test_check_bust_false(self): score = "20" self.assertFalse(Rulebook.check_bust(score))
def test_check_bust_ace_true(self): score = "25 or 35" self.assertTrue(Rulebook.check_bust(score))
def test_check_bust_ace_false(self): score = "15 or 25" self.assertFalse(Rulebook.check_bust(score))
def test_check_bust_zero(self): score = "0" self.assertFalse(Rulebook.check_bust(score))