トランプをする

1606 ワード

これまでのプログラムを用いて,A,Bの2人にランダムに2つのカードを分け,2つのカードのタイプを検証し,確率に基づいて採点(出現確率が低いほど得点が高くなる)し,winnerを宣言した.
import card_tests
import deal_and_test

def get_hands_of_10():
    deck = deal_and_test.build_deck()
    deal_and_test.shuffle(deck)
    hands = []
    for i in range(0,10):
        hands.append(deck[i])
    return hands

def return_rank(hand):
    if card_tests.is_straight_flush(hand):
        rank = 1
        return rank
    elif card_tests.is_4_of_a_kind(hand):
        rank = 2
        return rank
    elif card_tests.is_full_house(hand):
        rank = 3
        return rank
    elif card_tests.is_flush(hand):
        rank = 4
        return rank
    elif card_tests.is_straight(hand):
        rank = 5
        return rank
    elif card_tests.is_3_of_a_kind(hand):
        rank = 6
        return rank
    elif card_tests.is_2_pair(hand):
        rank = 7
        return rank
    elif card_tests.is_pair(hand):
        rank = 8
        return rank
    elif card_tests.is_high_card(hand):
        rank = 9
        return rank

def compare_rank(ten_hand):
    hand1 = ten_hand[:5]
    hand2 = ten_hand[5:]
    rank1 = return_rank(hand1)
    rank2 = return_rank(hand2)
    if rank1 < rank2:
        print('The winner is A')
    elif rank1 > rank2:
        print('The winner is B')
    else:
        print('Same rank')

def main():
    ten_hand = get_hands_of_10()
    compare_rank(ten_hand)



if __name__ == '__main__':
    main()

出力結果の例は次のとおりです.
Hand contains high card
Hand contains one pair
The winner is B