Advertisement
Guest User

Untitled

a guest
Mar 28th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.63 KB | None | 0 0
  1. # IMPORT
  2. from random import randint
  3. from time import sleep
  4.  
  5. class Turtle(object):
  6. def attack(self):
  7. for i in ent:
  8. if i != self.name:
  9. # print()
  10. # Accuracy
  11. if randint(0, 100) < self.acc - dc[i].ev:
  12. # Critical Hits
  13. if randint(0, 100) < self.crit:
  14. self.ch = True
  15. else:
  16. self.ch = False
  17. self.hit = randint(self.atk[0], self.atk[1])
  18. if self.ch:
  19. # print('CRITICAL HIT!', self.name, 'attacks for', self.hit * 2, 'damage.')
  20. dc[i].hp -= self.hit * 2
  21. else:
  22. # print('HYAH!', self.name, 'attacks for', self.hit, 'damage.')
  23. dc[i].hp -= self.hit
  24. # print(dc[i].name + "'s HP:", dc[i].hp)
  25. else:
  26. pass
  27. # print(self.name, 'missed!')
  28.  
  29. # Characters
  30. class Bunny(Turtle):
  31. def __init__(self):
  32. self.spd = randint(10,12)
  33. self.atk = (10,12)
  34. self.hp = randint(46,56)
  35. self.acc = 90
  36. self.ev = 20
  37. self.crit = 25
  38. self.name = 'Bunny'
  39.  
  40. class Jellyfish(Turtle):
  41. def __init__(self):
  42. self.spd = randint(9, 11)
  43. self.atk = (13, 19)
  44. self.hp = randint(38, 48)
  45. self.acc = 95
  46. self.ev = 30
  47. self.crit = 10
  48. self.name = 'Jellyfish'
  49.  
  50. class Penguin(Turtle):
  51. def __init__(self):
  52. self.spd = randint(11, 13)
  53. self.atk = (7, 18)
  54. self.hp = randint(46, 56)
  55. self.acc = 90
  56. self.ev = 30
  57. self.crit = 10
  58. self.name = 'Penguin'
  59.  
  60. class Turtle(Turtle):
  61. def __init__(self):
  62. self.spd = randint(8, 10)
  63. self.atk = (10, 13)
  64. self.hp = randint(50, 66)
  65. self.acc = 125
  66. self.ev = 10
  67. self.crit = 0
  68. self.name = 'Turtle'
  69.  
  70. # BETTING CLASSES
  71. class Player(object):
  72. def __init__(self,typ):
  73. self.typ = typ
  74. self.pocket = 100
  75. self.bet = 0
  76. self.wins = 0
  77. self.total = 0
  78.  
  79. def end(self,wl):
  80. if wl == True:
  81. self.wins += 1
  82. self.pocket += (0.1 * self.wins * self.bet) + (self.bet * 2)
  83. if wl == False:
  84. self.pocket -= 0.05 * (self.total - self.wins) * self.bet
  85. self.total += 1
  86. self.bet = 0
  87.  
  88. def betv(self,who,amt=0):
  89. # CURRENTLY BOT TARGET = PLAYER TARGET. REMOVE THAT BELOW AND USE A DEFAULT (0) TO FILL, PICK HIGHEST % WINS (INSIDE FUNC).
  90. self.tar = who
  91. if self.typ == 'player' or self.typ == 'player1':
  92. self.bet = amt
  93. if amt < self.pocket:
  94. self.bet = amt
  95. self.pocket -= self.bet
  96. else:
  97. raise ValueError('Invalid Input')
  98. else:
  99. for i in pla:
  100. if i != self.typ:
  101. self.botbet = pc[i].bet * (randint(80,120)/100)
  102. if self.botbet < self.pocket:
  103. self.bet = self.botbet
  104. self.pocket -= self.bet
  105.  
  106. # Functions
  107. def createChars(name,name1):
  108. global fight1,fight2,ent,dc,cd
  109. fight1 = cl[name]()
  110. fight2 = cl[name1]()
  111. ent = [name,name1]
  112. dc = {name: fight1,name1:fight2}
  113. cd = {'fight1':fight1,'fight2':fight2}
  114.  
  115. def createPlayer(typ,typ1):
  116. global player,player1,pla,pc,cp
  117. player = Player(typ)
  118. player1 = Player(typ1)
  119. pla = [typ,typ1]
  120. pc = {typ:player,typ1:player1}
  121. cp = {'player':player,'player1':player1}
  122.  
  123. # Variables
  124. cl = {'Bunny':Bunny,'Jellyfish':Jellyfish,'Penguin':Penguin,'Turtle':Turtle}
  125. cL = ['Bunny','Jellyfish','Penguin','Turtle']
  126.  
  127. # Logic
  128. while True:
  129. try:
  130. types = int(input('Enter 1 to play against Bot, 2 to play against second player. '))
  131. if types == 1:
  132. createPlayer('player','bot')
  133. elif types == 2:
  134. createPlayer('player','player')
  135. else:
  136. print('Invalid Input')
  137. continue
  138. break
  139. except:
  140. pass
  141. while True:
  142. # Generate Characters
  143. fig,fig1 = 0,0
  144. while fig == fig1:
  145. fig = randint(0,len(cL)-1)
  146. fig1 = randint(0,len(cL)-1)
  147. print('\n'+cL[fig],'v',cL[fig1])
  148. createChars(cL[fig],cL[fig1])
  149.  
  150. # Betting Loop (Based on Game Type)
  151. # v Bot
  152. if types == 1:
  153. while True:
  154. try:
  155. playertar = input('\nWho would you like to bet on? ')
  156. playerinp = float(input('\nYou have $%.2f. Enter amount to bet: $'%(player.pocket)))
  157. player.betv(playertar,playerinp)
  158. except ValueError as err:
  159. print(err)
  160. continue
  161. player1.betv(playertar)
  162. break
  163.  
  164. # v Player
  165. elif types == 2:
  166. while True:
  167. try:
  168. playertar = input('\nWho would you like to bet on? ')
  169. playerinp = float(input('\nYou have $%.2f. Enter amount to bet: $'%(player.pocket)))
  170. player.betv(playertar,playerinp)
  171. break
  172. except ValueError as err:
  173. print(err)
  174. continue
  175. while True:
  176. try:
  177. player1tar = input('\nWho would you like to bet on? ')
  178. player1inp = float(input('\nYou have $%.2f. Enter amount to bet: $'%(player1.pocket)))
  179. player1.betv(player1tar,player1inp)
  180. break
  181. except ValueError as err:
  182. print(err)
  183. continue
  184.  
  185. # Beginning of Fight Loop
  186. # Decide Initiative
  187. if fight1.spd > fight2.spd:
  188. init = 'fight1'
  189. elif fight1.spd < fight2.spd:
  190. init = 'fight2'
  191. else:
  192. # Tiebreaker
  193. if randint(0,10) < 5:
  194. init = 'fight1'
  195. else:
  196. init = 'fight2'
  197. print(cd.get(init).name,'goes first.\n')
  198.  
  199. # Attacking
  200. while fight1.hp > 0 and fight2.hp > 0:
  201. if init == 'fight1':
  202. fight1.attack()
  203. continue
  204. elif init == 'fight2':
  205. fight2.attack()
  206.  
  207. # Determine Winner and Allot Winning
  208. for i in ent:
  209. for x in pla:
  210. if i != pc[x].tar:
  211. if dc.get(pc[x].tar).hp > dc[i].hp:
  212. pc[x].end(True)
  213. else:
  214. pc[x].end(False)
  215. print('\nPlayer 1 has $%.2f and Player 2 has $%.2f.'%(player.pocket,player1.pocket))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement