A dice notation parser and roller.
npm install dice-notation-js
`
Or include dist/dice.min.js or dice.js as appropriate in your webpage.
This will expose the global Dice API, or create a UMD module, if appropriate.
$3
`
npm install dice-notation-js
`
Then require or import it:
`
const Dice = require('dice-notation-js');
`
Usage
Exposes three functions, Dice(), Dice.detailed() and Dice.parse().
$3
Syntax:
- Dice(notation [, randomFunction])
- Dice(number, type [, randomFunction])
Takes a string of dice notation, or two numbers representing the number and type of dice to roll, and optionally a randomization function (that replaces Math.random()) and returns the result of the dice roll.
Arguments:
- notation (string): You can pass the funciton a string of dice notation, e.g., 3d6+2, or 1d20.
- number (number): You can pass the function a number of dice to roll and the number of sides each die should have. This argument is the number of dice to roll.
- type (number): You can pass the function a number of dice to roll and the number of sides each die should have. This argument is the number of sides each die should have.
- randomFunction (function) optional: You may pass a function that returns a random number between 0 and 1 that will be used in place of Math.random(), such as to use a seedable PRNG.
Examples
Basic use:
`javascript
// All of the following are functionally the same:
Dice('3d6+2');
Dice('3d6') + 2;
Dice(3, 6) + 2;
`
Using a seedable PRNG, such as seedrandom:
`javascript
const Dice = require('dice-notation-js');
const prng = require('seedrandom')('hello');
Dice('3d6+2', prng);
Dice('3d6', prng) + 2;
Dice(3, 6, prng) + 2;
`
$3
Syntax:
- Dice.detailed(notation [, randomFunction])
- Dice.detailed(number, type [, randomFunction])
Takes a string of dice notation, rolls it like Dice(), but returns additional details for your use.
Arguments:
- notation (string): You can pass the funciton a string of dice notation, e.g., 3d6+2, or 1d20.
- number (number): You can pass the function a number of dice to roll and the number of sides each die should have. This argument is the number of dice to roll.
- type (number): You can pass the function a number of dice to roll and the number of sides each die should have. This argument is the number of sides each die should have.
- randomFunction (function) optional: You may pass a function that returns a random number between 0 and 1 that will be used in place of Math.random(), such as to use a seedable PRNG.
Examples
`javascript
var roll = Dice.detailed('3d6+10');
console.log(roll);
// -> { number: 3, type: 6, modifier: 10, rolls: [ 2, 1, 6 ], result: 19 }
`
$3
Syntax: Dice.parse(notation)
Takes a string of dice notation and returns an object parsed from it. For example, the notation 6d4-1 returns the following object:
`javascript
{
number : 6,
type : 4,
modifier -1
}
`
Arguments:
- notation (string): You can pass the funciton a string of dice notation, e.g., 3d6+2, or 1d20.
Examples
Basic use:
`javascript
Dice.parse('1d10') // -> { number : 1, type : 10, modifier : 0 }
Dice.parse('3d6+2') // -> { number : 3, type : 6, modifier : 2 }
Dice.parse('2d4-1') // -> { number : 2, type : 4, modifier : -1 }
``