Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need help writing a PYTHON function. Thank you for your help in advance. A sam

ID: 3851862 • Letter: I

Question

I need help writing a PYTHON function. Thank you for your help in advance.

A sample code, back ground info, instructions, and sample output is provided in screenshots below. Again, thank you.

Sample Code -

Background Info and Instructions -

Sample Output -

Thank you so much for the help!

IDLE File Edit Format Run Options window Help 100% LI Sun 6:18 PM Users/b s/projo6.py (3.6.1) inport cards def less than(c1,c2): Return True if cl is smaller in rank True if ranks are equal and cl has a smaller' suit False otherwise if c1.rank)

Explanation / Answer

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()