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