class Game: playerOnesHand = [] playerTwosHand = [] playerOneScore = 0 playerTwoScore = 0 result = 0 def __init__(self, cards): cards = cards.split() self.playerOnesHand = Hand(cards[0:5]) self.playerTwosHand = Hand(cards[5:10]) self.play(); def play(self): self.playerOneScore = self.playerOnesHand.getScore(); self.playerTwosCore = self.playerTwosHand.getScore(); if (self.playerOneScore > self.playerTwoScore): result = 1 else: result = 2 class Hand: cards = [] values = [] def setValues(self): for card in self.cards: self.values.append(card.value) self.values.sort() print len(self.values) def isFlush(self): currentSuit = self.cards[0].suit for card in self.cards: if card.suit != currentSuit: return False currentSuit = card.suit return True def isRoyalFlush(self): for card in self.cards: self.values.append(card.value) low = min(self.values) if low == 10 and (low + 1 in self.values) and (low + 2 in self.values) and (low + 3 in self.values) and (low + 4 in self.values): return True else: return False def isFourOfAKind(self): cardOneCount = self.values.count(self.values[0]) cardTwoCount = self.values.count(self.values[len(self.values) - 1]) if cardOneCount == 4 | cardTwoCount == 4: return True else: return False def isThreeOfAKind(self): cardOneCount = self.values.count(self.values[0]) cardTwoCount = self.values.count(self.values[len(self.values) - 1]) if cardOneCount == 3 | cardTwoCount == 3: return True else: return False def isStraight(self): low = min(self.values) if low == 10 and (low + 1 in self.values) and (low + 2 in self.values) and (low + 3 in self.values) and (low + 4 in self.values): return True; def isFullHouse(self): self.values = [] for card in self.cards: self.values.append(card.value) self.values.sort() cardOneCount = self.values.count(self.values[0]) cardTwoCount = self.values.count(self.values[len(self.values) - 1]) if (cardOneCount == 2 and cardTwoCount == 3 ) | (cardOneCount == 3 and cardTwoCount == 2): return True else: return False def isTwoPair(self): cardOneCount = self.values.count(self.values[0]) cardTwoCount = self.values.count(self.values[4]) cardThreeCount = self.values.count(self.values[2]) if(cardOneCount == 2 and cardTwoCount == 2) | (cardOneCount == 2 and cardThreeCount == 2) | (cardTwoCount == 2 and cardThreeCount == 2): return True; return False; def isPair(self): cardOneCount = self.values.count(self.values[0]) cardTwoCount = self.values.count(self.values[4]) cardThreeCount = self.values.count(self.values[2]) if(cardOneCount == 2 ^ cardTwoCount == 2 ^ cardTwoCount == 3): return True; return False; def __init__(self, cards): for c in cards: self.cards.append(Card(c)) self.setValues() def getScore(self): score = 0 if self.isRoyalFlush(): score = 140000 elif self.isFlush() and self.isStraight(): score = 130000 elif self.isFourOfAKind(): score = 120000 elif self.isFullHouse(): score = 110000 elif self.isFlush(): score = 100000 elif self.isStraight(): score = 90000 elif self.isThreeOfAKind(): score = 80000 elif self.isTwoPair(): score = 70000 elif self.isTwoPair(): score = 60000 else: score = 0 return score class Card: # value = 0 # suit = 0 def __init__(self, card): self.value = self.determineValue(card[0]) self.suit = card[1] def determineValue(x,y): return { '2':2, '3':3, '4':4, '5':6, '6':6, '7':7, '8':8, '9':9, 'T':10, 'J':11, 'Q':12, 'K':13, 'A':14 }.get(y) def playGames(): player1Score = 0; player2Score = 0; file = open("poker-small.txt") for line in file: game = Game(line) if game.result == 1: player1Score += 1 else: player2Score += 1 print "Player one has won " + str(player1Score) + " games! " print "Player two has won " + str(player2Score) + " games! " if (player1Score > player2Score): print "Player 1 wins!" else: print "Player 2 wins!" def main(): playGames(); if __name__ == "__main__": main()
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question