Help us improve PyPI by participating in user testing. All experience levels needed!

A command line dice roller

## Project description

diceroll is a simple command line dice roller.

It can be invoked through the roll command once installed.

## Requirements

Requires the pyparsing library.

## Expression syntax

The basic components of diceroll expressions are dice and integers, which can then have operators applied to them. The expression is always read left-to-right, so operators are called in order of position, not order of precedence.

Multiple expressions can be given, seperated by commas (,).

Dice are expressed in the form <N>d<S>, where N is the number of dice that will be rolled, and S is the number of sides those dice have.

Integers are simply expressed as one or more digits (i.e. 0-9).

Subexpressions can be placed in parenthesis (), and are evaluated in full before the main expression is evaluated.

### Operators

#### Unary operators

These operators act on the previous component, and almost always accept only dice.

##### Total

<D>t, <D> total: Returns the sum total of the diceroll (as an integer value).

##### Sort

<D>s, <D>sort: Sorts diceroll D.

##### Explode

<D>x, <D>explode: Rolls an extra die for every diceroll that hits the maximum.

#### Binary Operators

These operators act on two components (the previous and the next).

##### Arithmetic

<X>*<Y>, <X>/<Y>, <X>+<Y>, <X>-<Y>

Performs a basic operation on two components - respectively multiplication, division, addition, subtraction. Dicerolls are converted to integers, using the sum total of the rolls.

##### Drop and Keep

<X>v<Y>, <X>drop<Y>: Drop the Y lowest rolls from diceroll X. <X>^<Y>, <X>keep<Y>: Similar to drop, keeps the Y highest rolls from X.

##### Reroll and Recursive Reroll

<D>r<N>, <D>reroll<N>: Reroll any dice in D that are equal to or lower than N.

<D>rr<N>, <D>rreroll<N>: The same as reroll, but does so recursively - any rerolled dice equal to or lower than N are also rerolled

##### Diff

<X>~<Y>, <X>diff<Y>: Returns the difference between X and Y.

##### Success

<D> success [C][B] <N> Returns the count of dice in D that land equal to or higher than N. C and B are optional flags: C removes a success every time a die hits the minimum, B adds a success every time a die lands on the maximum.

This version

2.5

2.4

2.3

2.1

2.0

1.2

1.1

1.0

0.5

0.4

0.3

0.2

0.1