Provided by: rolldice_1.10-5_amd64 bug


       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 fantasy  role
       playing games.


                     returns the usage of diceroll

                     returns the version of diceroll

                     uses /dev/random for random number generating

                     uses /dev/urandom for random number generating (default)

                     prints  out  the  result  of  each individual die separately, as well as the
                     operations and totals


       The dice string uses the following format:


       The dice string doesn't have to be in the format that I outlined above, but  this  is  the
       nicest  order  for  me.   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.

                     This  is  the  only  required  part of the string, and now really isn't even
                     required, as it defaults to 1d6 if not  found.   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).

              {#x}   This number tells how many times to roll.  For example, if you want to  roll
                     3 6-sided dice 6 times, you would say 6x3d6.  This would return six numbers,
                     corresponding to the six different rolls.

              {*#}   This number tells how many times  to  multiply  the  result  of  each  roll.
                     3d6*100  would  return  a number in the range of 300-1800, since 3-18 is the
                     range resulting from 3d6, which is then multipled by 100.

              {+/-#} This number is the modifier to be added  or  subtracted,  depending  on  the
                     sign,  from  each roll.  1d4+1 would result in a range from 2-5 (1-4 for the
                     die, plus 1).  This step is handled *after* the multiplication modifier.

              {s#}   This number tells the program to drop the # lowest dice rolls.  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:

       Failure in getting dice attributes
              Either  memory  could  not  be  allocated  while  parsing  the string passed to the
              rolldice program or an invalid dice string was entered.
       Failure in rolling dice
              Memory could not be allocated while actually rolling the dice.
       Unknown option
              Take a wild guess ;)


       I haven't noticed any yet...  rolldice is a quick hack to provide a  virtual  dice  roller
       for  FRPGs  that  I  play.   Any  improvements  are  greatly welcome, as I am not the most
       experienced C coder...


       Stevie Strickland <>


       1.10 - 25 Nov 2001