Пример #1
0
    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()
Пример #2
0
 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()
Пример #3
0
 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()
Пример #4
0
 def test_cdh_dealer_hit_ace(self):
     self.assertTrue(Rulebook.check_dealer_hit("3 or 13"))
Пример #5
0
 def test_cdh_dealer_not_hit_ace(self):
     self.assertFalse(Rulebook.check_dealer_hit("10 or 20"))
Пример #6
0
 def test_check_bust_ace_false(self):
     score = "15 or 25"
     self.assertFalse(Rulebook.check_bust(score))
Пример #7
0
 def test_cdh_dealer_not_hit(self):
     self.assertFalse(Rulebook.check_dealer_hit("17"))
Пример #8
0
 def test_chv_shown_ace(self):
     self.assertEqual(Rulebook.check_hand_value(['3', 'A'], True), "1 or 11")
Пример #9
0
 def test_sts_large_val(self):
     self.assertEqual(50, Rulebook.string_to_score("50"))
Пример #10
0
 def test_cdw_player_win(self):
     self.assertTrue(Rulebook.check_dealer_win("21", "2"))
Пример #11
0
 def test_chv_ace(self):
     self.assertEqual(Rulebook.check_hand_value(['3', 'A']), "4 or 14")
Пример #12
0
 def test_cpw_player_win(self):
     self.assertTrue(Rulebook.check_player_win("5", "21"))
Пример #13
0
 def test_cpw_player_win_ace(self):
     self.assertTrue(Rulebook.check_player_win("20", "11 or 21"))
Пример #14
0
 def test_check_bust_false(self):
     score = "20"
     self.assertFalse(Rulebook.check_bust(score))
Пример #15
0
 def test_sts_ace_low_val(self):
     self.assertEqual(18, Rulebook.string_to_score("18 or 28"))
Пример #16
0
 def test_sts_ace_val(self):
     self.assertEqual(21, Rulebook.string_to_score("11 or 21"))
Пример #17
0
 def test_check_bust_true(self):
     score = "22"
     self.assertTrue(Rulebook.check_bust(score))
Пример #18
0
 def test_cdw_player_not_win(self): #can be tie or loss.
     self.assertFalse(Rulebook.check_dealer_win("2", "10"))
Пример #19
0
 def test_chv(self):
     self.assertEqual(Rulebook.check_hand_value(['3', '5']), "8")
Пример #20
0
 def update_view(self, custom_message=""):
     ModelView.update_view(
         self.cards, self.player.get_cards(),
         Rulebook.check_hand_value(self.cards, self.hand_hidden),
         Rulebook.check_hand_value(self.player.get_cards()),
         self.hand_hidden, custom_message)
Пример #21
0
 def test_chv_hidden_ace(self):
     self.assertEqual(Rulebook.check_hand_value(['A', '6'], True), "6")
Пример #22
0
 def test_check_bust_ace_true(self):
     score = "25 or 35"
     self.assertTrue(Rulebook.check_bust(score))
Пример #23
0
 def test_cdw_player_tie(self):
     self.assertFalse(Rulebook.check_dealer_win("21", "21"))
Пример #24
0
 def test_sts_zero(self):
     self.assertEqual(0, Rulebook.string_to_score("0"))
Пример #25
0
 def test_cdw_player_win_ace(self):
     self.assertTrue(Rulebook.check_dealer_win("11 or 21", "11"))
Пример #26
0
 def test_cdh_dealer_hit(self):
     self.assertTrue(Rulebook.check_dealer_hit("15"))
Пример #27
0
 def get_score(self):
     return Rulebook.check_hand_value(self.get_cards())
Пример #28
0
 def test_check_bust_zero(self):
     score = "0"
     self.assertFalse(Rulebook.check_bust(score))