rolldice - rolls virtual dice
rolldice [ options ] [dice_string
[dice_string ...]]
rolldice rolls virtual dice. The dice strings passed on the
command line contain information on the dice to roll in a format comparable
to the format used in most role playing games.
If no dice strings are provided as command line arguments,
rolldice uses stdin as input.
- -h,--help
- returns the usage of diceroll
- -v,--version
- returns the version of diceroll
- -r,--random
- uses /dev/random for random number generating
- -u,--urandom
- uses /dev/urandom for random number generating (default)
- -s,--separate
- prints out the result of each individual die separately, as well as the
operations and totals
- -i,--interactive
- prompts the user to input dice strings. Differs from normal stdin input in
that errors do not cause the program to immediately exit, but rather
return to the prompt.
The dice string uses the following format:
- {#x}{#}d[#|%]{*#}{+/-#}{s#}
The dice string doesn't have to be in the exact format outlined
above, but this is the order I use. It will try to parse any different
string containing the same sections in the best way it can, and will throw
out anything that isn't one of the sections below.
- {#}d[#|%]
- The first number is the number of dice to roll, and the second number is
the number of sides the dice have. The numbers rolled on each die are then
added up and given as the result. Hence 3d6 means "roll three
six-sided dice, add them together and return the result". If the
first number is left out, then the number of dice defaults to 1. If the
second number is not a number, but a percentage sign (%), then the number
of sides becomes 100 (for a percentage roll). If this is not included in
the dice string, then the default is 1d6.
- {#x}
- This number describes how many times to roll. For example, if you want to
roll 3 6-sided dice 6 times, you use the dice string 6x3d6. This returns
six numbers, corresponding to the six different rolls.
- {*#}
- This number describes how many times to multiply the result of each roll.
3d6*100 returns a number in the range of 300-1800, because 3-18 is the
range for 3d6 and the result is then multipled by 100.
- {+/-#}
- This number is the modifier to be added or subtracted, depending on the
sign, from each roll. 1d4+1 results in a range from 2-5 (1-4 for the die,
plus 1). This step is handled *after* the multiplication modifier.
- {s#}
- This number describes how many lowest dice rolls to drop. This step is
handled *before* the multiplication modifier.
in the order show above. For an extreme example,
"3x4d6*5+1s2" would roll four six-sided dice, drop the lowest two,
multiply the result by 5, add 1 to that, and repeat the process two more
times, for a total of three results.
The following error messages may appear on STDERR:
Requested * is too large
Memory could not be allocated while parsing the string
passed to the rolldice program
Problems with the malformed dice string
The dice string contains a syntax error (see upper
section DICE STRING FORMAT)
Unknown option
An unknown command-line option was provided
The exit values returned by rolldice follow the BSD
convention.
Stevie Strickland <sstrickl@ccs.neu.edu>