Guest User

Untitled

a guest
Jul 20th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. import random
  2. from decimal import *
  3. getcontext().prec = 7
  4.  
  5.  
  6. ### Generate the Decklist (not randomized)
  7. decklist = []
  8. for i in range(0):
  9. decklist.append(i)
  10. for i in range(20):
  11. decklist.append("M")
  12. for i in range(40):
  13. decklist.append("B")
  14. '''
  15. print
  16. print "Mountain", decklist.count("M")
  17. print "Burn=", decklist.count("B")
  18. print "Total=", len(decklist)
  19. print
  20. #'''
  21. print decklist.count("M"), "/", decklist.count("B")
  22.  
  23.  
  24. def PlayGame(Hand, Deck):
  25. TurnCounter= 0
  26. Play = []
  27. Hand = Hand
  28. Deck = Deck
  29. Damage = 0
  30.  
  31. while 1:
  32.  
  33. TurnCounter +=1
  34. #print
  35. #print "Turn=",TurnCounter
  36.  
  37. ### Play Mountain
  38. if "M" in Hand:
  39. #print "Play Mountain"
  40. Hand.remove("M")
  41. Play.append("M")
  42.  
  43. ### Play Burn
  44. for i in range(Play.count("M")):
  45. if "B" in Hand:
  46. #print "Damage~!"
  47.  
  48. ### CHANGE YOUR BURN CARD VALUE HERE!!!!
  49. Damage +=2
  50. Hand.remove("B")
  51.  
  52. ### Check for Win
  53. #print "Damage=", Damage
  54. if Damage >=20:
  55. #print
  56. return TurnCounter
  57.  
  58. ### Draw a Card (Starting next turn)
  59. #print "Draw --- ", Deck[0:1][0]
  60. Hand.append(Deck[0:1][0])
  61. #print "Hand", Hand
  62. Deck = Deck[1:]
  63.  
  64.  
  65. def DrawHand(MullCounter):
  66. ### Create a new instance of the deck and randomize it (mutability issues)
  67. currentdeck = decklist[:]
  68. random.shuffle(currentdeck)
  69. '''
  70. print 'making Currentdeck Randomized'
  71. print currentdeck
  72. print
  73. #'''
  74.  
  75. ### Draw Hand
  76. Hand = currentdeck[0:MullCounter]
  77. currentdeck = currentdeck[MullCounter:]
  78. '''
  79. print 'Hand is now', Hand
  80. print
  81. #'''
  82.  
  83. return [Hand, currentdeck]
  84.  
  85.  
  86.  
  87. ranger = 1000000
  88. average = 0
  89.  
  90. mCounter = 0
  91. T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  92.  
  93. for i in range(ranger):
  94.  
  95. ### Mulligan Check and Play
  96. mull=0
  97. while 1:
  98. Instance = DrawHand(7-mull)
  99. Hand = Instance[0]
  100. #print Hand
  101. currentdeck = Instance[1]
  102. #print currentdeck
  103.  
  104. if "M" in Hand:
  105. break
  106. elif len(Hand) == 3:
  107. break
  108. else:
  109. mull +=1
  110. mCounter +=1
  111.  
  112. killturn = PlayGame(Hand, currentdeck)
  113. average = average + killturn
  114.  
  115. if killturn == 3:
  116. T3 +=1
  117. if killturn == 4:
  118. T4 +=1
  119. if killturn == 5:
  120. T5 +=1
  121. if killturn == 6:
  122. T6 +=1
  123. if killturn == 7:
  124. T7 +=1
  125. if killturn == 8:
  126. T8 +=1
  127. if killturn == 9:
  128. T9 +=1
  129. if killturn == 10:
  130. T10 +=1
  131. if killturn == 11:
  132. T11 +=1
  133. if killturn == 12:
  134. T12 +=1
  135.  
  136. """
  137. print "From Range of ", ranger
  138. #print "T3=",(Decimal(T3) / Decimal(ranger)) * 100
  139. print "T4=",(Decimal(T4) / Decimal(ranger)) * 100
  140. print "T5=",(Decimal(T5) / Decimal(ranger)) * 100
  141. print "T6=",(Decimal(T6) / Decimal(ranger)) * 100
  142. print "T7=",(Decimal(T7) / Decimal(ranger)) * 100
  143. print "T8=",(Decimal(T8) / Decimal(ranger)) * 100
  144. print "T9=",(Decimal(T9) / Decimal(ranger)) * 100
  145. print "T10=",(Decimal(T10) / Decimal(ranger)) * 100
  146. print "T11=",(Decimal(T11) / Decimal(ranger)) * 100
  147. print "T12=",(Decimal(T12) / Decimal(ranger)) * 100
  148. #"""
  149.  
  150. #print "mull count ", mCounter
  151. print "The average turn you win ", (Decimal(average) / Decimal(ranger))
Add Comment
Please, Sign In to add comment