# hand.py # Steve Marschner (srm2), Lillian Lee (ljl2), and Walker White # October 15, 2013 """Lecture Demo: class to represent poker hands""" import card import random class Hand(object): """Instances represent a hand in poker. Instance Attributes: cards: cards in the hand [list of Card] This list is sorted according to the ordering defined by the Card class.""" def __init__(self, deck, n): """Initializer: Draw a hand of n cards. Precondition: deck is a list of >= n cards. Deck is assumed to be shuffled.""" self.cards = [] for i in range(n): self.cards.append(deck.pop(0)) self.cards.sort() # #cards = deck[0:n] #deck[0:n] = [] def is_full_house(self): """Return: True if this hand is a 5-card full house.""" pass def is_flush(self): """Return: True if this hand is a 5-card flush.""" pass def is_pair(self): """Return: True if this hand contains a pair.""" pass def discard(self, k): """Discard the k-th card, counting from zero. Precondition: Hand contains at least k+1 cards """ pass def __str__(self): """Return: A string representation of this hand.""" return ', '.join(map(str, self.cards)) if __name__ == '__main__': print Hand(card.full_deck(), 5) num_flushes = 0 num_full_houses = 0 num_pairs = 0 for i in range(1000): deck = card.full_deck() random.shuffle(deck) h = Hand(deck, 5) if h.is_full_house(): print 'full house:', h num_full_houses += 1 if h.is_flush(): print 'flush:', h num_flushes += 1 if h.is_pair(): print 'pair:', h num_pairs += 1 print num_full_houses, 'full houses; ', num_flushes, 'flushes; ', num_pairs, 'pairs'