Un'goro packs code


SUBMITTED BY: inTHEpast

DATE: April 15, 2017, 11:18 a.m.

FORMAT: Python

SIZE: 2.6 kB

HITS: 647

  1. import numpy as np
  2. #Un'goro Numbers
  3. numcom=49
  4. numrare=36
  5. numepic=27
  6. numlegend=23
  7. class Count:
  8. def __init__(self):
  9. self.common=0
  10. self.rare=0
  11. self.epic=0
  12. self.legend=0
  13. self.goldcom=0
  14. self.goldrare=0
  15. self.goldepic=0
  16. self.goldleg=0
  17. self.packs=0
  18. self.dust=0
  19. def Progress(self):
  20. comneed=(2*numcom-self.common)*40
  21. rarneed=(2*numrare-self.rare)*100
  22. epicneed=(2*numepic-self.epic)*400
  23. legneed=(numlegend-self.legend)*1600
  24. dustneed=comneed+rarneed+epicneed+legneed
  25. diff=self.dust-dustneed
  26. if diff < 0:
  27. return 1
  28. elif diff >=0:
  29. return 0
  30. def PackInc(self):
  31. self.packs+=1
  32. def Common(self):
  33. if np.random.rand() > self.common/numcom/2:
  34. self.common+=1
  35. else:
  36. self.dust+=5
  37. def Rare(self):
  38. if np.random.rand() > self.rare/numrare/2:
  39. self.rare+=1
  40. else:
  41. self.dust+=20
  42. def Epic(self):
  43. if np.random.rand() > self.epic/numepic/2:
  44. self.epic+=1
  45. else:
  46. self.dust+=100
  47. def Legend(self):
  48. if np.random.rand() > self.legend/numlegend:
  49. self.legend+=1
  50. else:
  51. self.dust+=400
  52. def Gcommon(self):
  53. self.dust+=50
  54. def Grare(self):
  55. self.dust+=100
  56. def Gepic(self):
  57. self.dust+=400
  58. def Glegend(self):
  59. self.dust+=1600
  60. def GenCard(stats):
  61. card=np.random.rand()
  62. if card < .701362:
  63. stats.Common()
  64. elif card-.701362 < .209809:
  65. stats.Rare()
  66. elif card-.911172 < .043960:
  67. stats.Epic()
  68. elif card-.955132 < .011262:
  69. stats.Legend()
  70. elif card-.966394 < .014714:
  71. stats.Gcommon()
  72. elif card-.981108 < .015441:
  73. stats.Grare()
  74. elif card-.996549 < .002361:
  75. stats.Gepic()
  76. elif card-.998910 < .001090:
  77. stats.Glegend()
  78. def OpenPack(stats):
  79. stats.PackInc()
  80. for i in range(5):
  81. GenCard(stats)
  82. def WriteResults(numpacks):
  83. with open("Results.txt","a") as file:
  84. file.write("{}\n".format(numpacks))
  85. def Trial():
  86. stats=Count()
  87. while stats.Progress():
  88. OpenPack(stats)
  89. WriteResults(stats.packs)
  90. def RunSim(n):
  91. with open("Results.txt","w") as file:
  92. file.write("")
  93. for i in range(n):
  94. Trial()
  95. print("Complete")
  96. RunSim(100)

comments powered by Disqus