Beispiel #1
0
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
Beispiel #2
0
 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)
Beispiel #3
0
	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)
Beispiel #4
0
 def test_score_1_pair(self):
     person = [u"4♣", u"7♥", u"7♦", u"9♠", u"5♠"]
     self.assertEqual(105, score(person))
Beispiel #5
0
 def test_score_highest_card(self):
     person = [u"4♣", u"2♥", u"7♦", u"9♠", u"5♠"]
     self.assertEqual(7, score(person))
Beispiel #6
0
#!/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
Beispiel #7
0
#!/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
Beispiel #8
0
	def test_score_1_pair(self):
		person = [u"4♣", u"7♥", u"7♦", u"9♠", u"5♠"]
		self.assertEqual(105, score(person))
Beispiel #9
0
	def test_score_highest_card(self):
		person = [u"4♣", u"2♥", u"7♦", u"9♠", u"5♠"]
		self.assertEqual(7, score(person))