예제 #1
0
    def test_card_value(self):

        # Test non-Ace
        self.assertEqual(Card.cards_value(Test_Card_Methods.card_list), 21)

        # Test Ace
        card_list2 = [Card("5", "Hearts", 5), Card("Ace", "Hearts", (1, 11))]
        self.assertEqual(Card.cards_value(card_list2), 16)

        # Push the total over 21 with Ace == 11
        card_list2.append(Card("King", "Hearts", 10))
        self.assertEqual(Card.cards_value(card_list2), 16)
예제 #2
0
def dealer_turn(player_score: int):
    print(f"\nDealer shows: {Card.string_cards(DEALER_CARDS)}")
    min_score = 17
    if player_score < 17:
        min_score = player_score
    while over_check(DEALER_CARDS, min_score):
        deal("D")
        print(f"Dealer shows: {Card.string_cards(DEALER_CARDS)}")
    return Card.cards_value(DEALER_CARDS)
예제 #3
0
def player_turn():
    while over_check(PLAYER_CARDS, 21):
        print(f"\nDealer shows: {Card.string_cards(DEALER_CARDS, True)}")
        print(f"You have: {Card.string_cards(PLAYER_CARDS)}\n")
        hit_status = ""
        while hit_status not in ("y", "n"):
            hit_status = input(f"Hit? Y/N ").lower()
        if hit_status == "y":
            deal("P")
        else:
            break
    return Card.cards_value(PLAYER_CARDS)
예제 #4
0
def over_check(card_list: int, threshold_num: int) -> bool:
    return Card.cards_value(card_list) <= threshold_num