Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement