Advertisement
dmesticg

Untitled

Jun 16th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. import random
  2. import collections
  3. def bubbleSort(arr):
  4. isSorted = False
  5. while not(isSorted):
  6. for i in range(len(arr) - 1):
  7. for j in range(len(arr) - 1 - i):
  8. if arr[j] > arr[j+1]:
  9. arr[j], arr[j+1] = arr[j+1],arr[j]
  10. else:
  11. isSorted = True
  12.  
  13. def Occur(cards):
  14. scorelist = [2,4,8]
  15. counter = collections.Counter(cards)
  16. largest = [0,0]
  17. largest2 = [0,0]
  18. for key in counter:
  19. occur = counter[key]
  20. if occur > largest2[1]:
  21. if occur > largest[1]:
  22. largest2 = largest
  23. largest = [key,occur]
  24. else:
  25. largest2 = [key,occur]
  26. num = max([largest[0],largest2[0]])
  27. if largest[1] == 3 and largest2[1] == 2:
  28. return(7,largest[0])
  29. elif largest[1] == largest2[1]:
  30. return(3,num)
  31. elif largest[1] in [2,3,4]:
  32. return(scorelist[[2,3,4].index(largest[1])],num )
  33. return(1,num)
  34.  
  35.  
  36. def Flush(cards):
  37. counter = collections.Counter(cards)
  38. if len(counter) == 1:
  39. return(True,max(cards))
  40. return(False,max(cards))
  41.  
  42. def Straight(cards):
  43. if cards[4] - cards[0] == 4:
  44. return(True,max(cards))
  45. return(False,max(cards))
  46.  
  47. def Royal(cards):
  48. royal = [0,9,10,11,12]
  49. if cards == royal:
  50. return(True,13)
  51. return(False,13)
  52.  
  53. def getScore(hand):
  54. suit = bubbleSort([i[1] for i in hand])
  55. value = bubbleSort([i[0] for i in hand])
  56. occurances = Occur(value)
  57. if occurances == 2:
  58. if Flush(suit) == 5:
  59. if Straight(value):
  60. return(9)
  61. if Royal(value):
  62. return(10)
  63. return(6)
  64. if Straight(value):
  65. return(5)
  66. return(1)
  67. return(occurances)
  68.  
  69. class Deck: #!
  70. def __init__(self,numsuit,numcard):
  71. self.numsuit = numsuit
  72. self.numcard = numcard
  73. self.deck = [[True] * numsuit for i in range (numcard)]
  74.  
  75. def createCard(self): #!
  76. if self.deck.count:
  77. suitval = random.randint(0,self.numsuit-1)
  78. cardval = random.randint(0,self.numcard-1)
  79. while self.deck[cardval][suitval] == False:
  80. suitval = random.randint(0,self.numsuit-1)
  81. cardval = random.randint(0,self.numcard-1)
  82. self.deck[cardval][suitval] = False
  83. return((cardval,suitval))
  84.  
  85. def createHand(self,handSize):
  86. cards = []
  87. for i in range(handSize):
  88. card = Deck.createCard(self)
  89. cards.append(card)
  90. return(cards)
  91.  
  92. def changeHand(self,hand,indexList):
  93. for i in range(len(indexList)):
  94. hand[indexList[i]] = self.deck.createCard(self)
  95. return(hand)
  96.  
  97. theDeck = Deck(4,13)
  98. hand1 = theDeck.createHand(5)
  99. print(getScore(hand1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement