xdice
xdice is a lightweight python library for managing dice, scores, and dice-notation patterns.
- Parse almost any Dice Notation pattern: '1d6+1', 'd20', '3d%', '1d20//2 - 2*(6d6+2)', 'max(1d4+1,1d6)', '3D6L2', 'R3(1d6+1)', '3dF'...etc.
- API help you to easily manipulate dices, patterns, and scores as objects
- A command line tool for convenience
xdice has been tested with python 3.4+
For more, see the Documentation
import dice # Roll simple dices with rolldice() # eg: 2d6 score = rolldice(6, amount=2) # manipulates the score as an integer print(score) >> 11 print(score * 2) >> 22 print(score == 11) >> True # Or iterates over the results for result in score: print(result) >> 5 >> 6 # Parse patterns with roll() and get a PatternScore object ps = roll("2d6+18") print(ps) >> 28 print(ps.format()) >> '[5,6]+18' # Use special notations, as selective dice ps = roll("6D%L2") print(ps) >> 315 print(ps.format(verbose=True)) >> '6D%L2(scores:[80, 70, 76, 89], dropped:[2, 49])'
Run python roll.py [options] <expr>
usage: roll [-h] [-V] [-n] [-v] expression [expression ...] Command Line Interface for the xdice library positional arguments: expression mathematical expression(s) containing dice <n>d<s> patterns optional arguments: -h, --help show this help message and exit -V, --version print the xdice version string and exit -n, --num_only print numeric result only -v, --verbose print a verbose result
Any opinion / contribution is welcome, please contact us.
pip install xdice
xdice is under GNU License
Olivier Massot, 2017
dice roll d20 game random parser dices role board