Advertisement
dmesticg

Untitled

Jun 14th, 2018
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. def Occur(cards):
  2. scorelist = [2,4,8]
  3. counter = collections.Counter(cards)
  4. largest = [0,0]
  5. largest2 = [0,0]
  6. for key in counter:
  7. occur = counter[key]
  8. if occur > largest2[1]:
  9. if occur > largest[1]:
  10. largest2 = largest
  11. largest = [key,occur]
  12. else:
  13. largest2 = [key,occur]
  14. num = max([largest[0],largest2[0]])
  15. if largest[1] == 3 and largest2[1] == 2:
  16. return(7,largest[0])
  17. elif largest[1] == largest2[1]:
  18. return(3,num)
  19. elif largest[1] in [2,3,4]:
  20. return(scorelist[[2,3,4].index(largest[1])],num )
  21. return(1,num)
  22.  
  23.  
  24. def Flush(cards):
  25. counter = collections.Counter(cards)
  26. if len(counter) == 1:
  27. return(True,max(cards))
  28. return(False,max(cards))
  29.  
  30. def Straight(cards):
  31. if cards[4] - cards[0] == 4:
  32. return(True,max(cards))
  33. return(False,max(cards))
  34.  
  35. def Royal(cards):
  36. royal = [0,9,10,11,12]
  37. if cards == royal:
  38. return(True,13)
  39. return(False,13)
  40.  
  41. def getScore(hand):
  42. suit = bubbleSort([i[1] for i in hand])
  43. value = bubbleSort([i[0] for i in hand])
  44. occurances = Occur(value)
  45. if occurances == 2:
  46. if Flush(suit) == 5:
  47. if Straight(value):
  48. return(9)
  49. if Royal(value):
  50. return(10)
  51. return(6)
  52. if Straight(value):
  53. return(5)
  54. return(1)
  55. return(occurances)
  56.  
  57. class Player:
  58. def __init__(self,startBalance,name,hand,game):
  59. self.balance = startBalance
  60. self.name = name
  61. self.game = game
  62. self.hand = hand
  63. self.score = getScore(self.hand)
  64.  
  65. def bet(self,betAmount):
  66. if betAmount <= self.balance:
  67. self.balance -= betAmount
  68. self.game.currentPot += betAmount
  69. else:
  70. print("Not enough money")
  71.  
  72.  
  73.  
  74. class Poker:
  75. def __init__(self):
  76. self.checkCounter = 0
  77. self.turn = 0
  78. self.currentPot = 0
  79. self.previousBet = 0
  80. def addPlayers(self,playerList):
  81. self.playerList = playerList
  82. def Check(self):
  83. if self.raised == False:
  84. if checkCounter <= 2:
  85. checked += 1
  86. else:
  87. Poker.checkWinner(self)
  88. else:
  89. print("You have to raise buddy")
  90. def Fold(self,player):
  91. Poker.newRound(self,self.playerList[(self.turn + 1) % 2])
  92. def Raise(self,player,betAmount):
  93. self.raised = True
  94. self.previousBet = betAmount
  95. player.bet(betAmount)
  96. def Call(self,player):
  97. if self.raised:
  98. player.bet(self.previousBet)
  99. else:
  100. print("There is nothing to call, retard")
  101. def checkWinner(self):
  102. if self.playerList[0].score[0] > self.playerList[1].score[0]:
  103. winner = self.playerList[0]
  104. elif self.playerList[0].score[0] < self.playerList[1].score[0]:
  105. winner = self.playerList[1]
  106. else:
  107. if self.playerList[0].score[1] > self.playerList[1].score[1]:
  108. winner = self.playerList[0]
  109. elif self.playerList[0].score[1] < self.playerList[1].score[1]:
  110. winner = self.playerList[1]
  111. else:
  112. winner = 0
  113. Poker.newRound(winner)
  114. def newRound(self,winner):
  115. if winner != 0:
  116. winner.balance += self.currentPot
  117. print("The winner of the round is "+ winner.name)
  118. Poker()
  119. else:
  120. print("its a tie")
  121. Poker()
  122.  
  123.  
  124.  
  125. Game = Poker()
  126. Sina = Player(1000,"Sina",Game)
  127. Varun = Player(1000,"Varun",Game)
  128. Game.addPlayers([Sina,Varun])
  129. Game.Raise(Varun,500)
  130. Game.Call(Sina)
  131. print(Sina.balance)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement