def eul54(): """How many hands does Player 1 win?""" hands = [hand.rstrip('\n') for hand in open('resources/p054_poker.txt')] p1_count = 0 p2_count = 0 for line in hands: line = line.split(" ") p1 = line[:5] p2 = line[5:] s1 = poker.score(p1) s2 = poker.score(p2) if s1[0] > s2[0]: p1_count += 1 elif s2[0] > s1[0]: p2_count += 1 else: if s1[1] > s2[1]: p1_count += 1 elif s2[1] > s1[1]: p2_count += 1 else: if poker.high_card(p1, p2): p1_count += 1 else: p2_count += 1 return p1_count
def test_one_pair_each_person_ties(self): person1 = [u"4♣", u"2♥", u"2♦", u"10♠", u"5♠"] person2 = [u"2♣", u"3♥", u"5♦", u"4♠", u"2♠"] print score(person1) print score(person2) computed = play_poker(person1, person2) expected = "Person 1 won" self.assertEqual(computed, expected)
def test_score_1_pair(self): person = [u"4♣", u"7♥", u"7♦", u"9♠", u"5♠"] self.assertEqual(105, score(person))
def test_score_highest_card(self): person = [u"4♣", u"2♥", u"7♦", u"9♠", u"5♠"] self.assertEqual(7, score(person))
#!/usr/bin/python import itertools import poker def gen(num): cards = [] ranks = '23456789TJQKA' for rank in reversed(ranks): for suit in 'SHDC': cards.append(rank + suit) return itertools.combinations(cards, num) if __name__ == '__main__': scores = [] for hand in gen(5): scores.append((poker.score(hand), " ".join(hand))) scores.sort(reverse=True) for s in scores: print s