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