Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- from operator import pos, neg
- from random import randint
- def rolld20(fmt):
- """Perform a dice roll in the d20 format (e.g. 5d8-3)"""
- x = 0
- op = pos
- for part in re.findall(r'(\d*d\d+|\d+|\+|-)', fmt):
- if 'd' in part:
- mult, die_n = part.split('d')
- mult = int(mult or 1)
- die_n = int(die_n)
- x += op(sum(randint(1, die_n) for _ in range(mult)))
- elif part[0].isdigit():
- x += op(int(part))
- op = pos
- if part == '-':
- op = neg
- return x
Add Comment
Please, Sign In to add comment