Guest User

Untitled

a guest
Jan 24th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. import re
  2. from operator import pos, neg
  3. from random import randint
  4.  
  5. def rolld20(fmt):
  6. """Perform a dice roll in the d20 format (e.g. 5d8-3)"""
  7. x = 0
  8. op = pos
  9. for part in re.findall(r'(\d*d\d+|\d+|\+|-)', fmt):
  10. if 'd' in part:
  11. mult, die_n = part.split('d')
  12. mult = int(mult or 1)
  13. die_n = int(die_n)
  14. x += op(sum(randint(1, die_n) for _ in range(mult)))
  15. elif part[0].isdigit():
  16. x += op(int(part))
  17. op = pos
  18. if part == '-':
  19. op = neg
  20. return x
Add Comment
Please, Sign In to add comment