Advertisement
Guest User

fighter.py

a guest
Mar 10th, 2023
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1.  
  2. class Fighter:
  3. def __init__(self, name, tid, attack, defence):
  4. self.name = name
  5. self.teamid = tid
  6.  
  7. self.attack_roll = attack
  8. self.defence_roll = defence
  9.  
  10. def attack(self, enemy):
  11. advantage = abs(self.attack_roll - enemy.defence_roll)
  12.  
  13. if advantage > 11:
  14. return 0.0 if self.attack_roll < enemy.defence_roll else 1.0
  15.  
  16. ties = 12 - advantage
  17. looses = int(((12 - advantage) / 2) * ((12 - advantage) - 1))
  18. wins = 144 - ties - looses
  19.  
  20. if self.attack_roll < enemy.defence_roll:
  21. return (looses / 144) / (1 - (ties / 144))
  22. else:
  23. return (wins / 144) / (1 - (ties / 144))
  24.  
  25.  
  26. if __name__ == "__main__":
  27. # test code
  28.  
  29. import numpy as np
  30. import matplotlib.pyplot as plt
  31.  
  32. x = np.arange(-15, 15)
  33. y = np.array([])
  34. frisk = Fighter("Frisk", 0, 0, 0)
  35. for i in range(-15, 15):
  36. stronger_enemy = Fighter("Froggit", 1, i, 0)
  37. y = np.append(y, [stronger_enemy.attack(frisk)])
  38.  
  39. plt.plot(x, y)
  40. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement