トランプをする
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