Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.91 KB | None | 0 0
  1. from math import floor, pow
  2. import sys
  3.  
  4.  
  5. def chunked_number(n, sep=' '):
  6.     return sep.join(map(''.join, chunk_by(3, str(n))))
  7.  
  8.  
  9. def chunk_by(n, iterable):
  10.     i = iter(reversed(iterable))
  11.     groups = map(reversed, reversed(list(zip(*([i]*n)))))
  12.     rest = iterable[:len(iterable) % n]
  13.     result = map(list, [rest, *groups])
  14.     return result
  15.  
  16.  
  17. def computeLevelUpCost(lvl):
  18.     levelUpCosts = [10, 20, 24, 28, 34, 40, 45]
  19.     if lvl < 8:
  20.         return levelUpCosts[lvl - 1]
  21.     if lvl < 16:
  22.         return 12 * lvl
  23.     if lvl < 50:
  24.         return 5 * (floor(lvl**1.35) + 21)
  25.     return 50000 + 10 * floor(pow(125 * max(0, lvl - 50), 1.35))
  26.  
  27.  
  28. if __name__ == '__main__':
  29.     max_level = len(sys.argv) == 2 and int(sys.argv[1]) or 150
  30.     for level in range(1, max_level):
  31.         pretty_xp = chunked_number(computeLevelUpCost(level))
  32.         print(f'{level:<7}->{level+1:>7} {pretty_xp:>15}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement