mirror of
https://github.com/dmuth/diceware.git
synced 2024-11-23 17:26:34 -05:00
Wrote getNumValuesFromNumDice() and rollDice().
This commit is contained in:
parent
acf5389ff7
commit
d6f2e9b324
2 changed files with 74 additions and 0 deletions
49
main.js
49
main.js
|
@ -121,6 +121,55 @@ Diceware.convertBase6ToDice = function(roll, num_dice) {
|
|||
} // End of convertBase6ToDice()
|
||||
|
||||
|
||||
/**
|
||||
* Get the maximum value from the number of dice we're rolling.
|
||||
* This is in a separate function so it is testable.
|
||||
*/
|
||||
Diceware.getNumValuesFromNumDice = function(num_dice) {
|
||||
|
||||
var retval;
|
||||
|
||||
if (num_dice == 0) {
|
||||
throw("Number of dice cannot be zero!");
|
||||
|
||||
} else if (num_dice < 0){
|
||||
throw("Number of dice is negative!");
|
||||
|
||||
}
|
||||
|
||||
retval = Math.pow(6, num_dice);
|
||||
|
||||
return(retval);
|
||||
|
||||
} // End of getNumValuesFromNumDice()
|
||||
|
||||
|
||||
/**
|
||||
* This is our main entry point for rolling dice.
|
||||
*
|
||||
* Get our maximum number for a random value, turn it into base-6,
|
||||
* then turn it into a dice roll!
|
||||
*
|
||||
*/
|
||||
Diceware.rollDice = function(num_dice) {
|
||||
|
||||
var retval = [];
|
||||
|
||||
var max = Diceware.getNumValuesFromNumDice(num_dice);
|
||||
|
||||
var random = Diceware.getRandomValue(max);
|
||||
|
||||
var base6 = Diceware.getBase6(random, num_dice);
|
||||
|
||||
var dice = Diceware.convertBase6ToDice(base6, num_dice);
|
||||
|
||||
retval = dice;
|
||||
|
||||
return(retval);
|
||||
|
||||
} // End of rollDice()
|
||||
|
||||
|
||||
/**
|
||||
* Roll a die.
|
||||
*
|
||||
|
|
|
@ -66,3 +66,28 @@ QUnit.test("Convert Base 6 to Dice Roll", function(assert) {
|
|||
});
|
||||
|
||||
|
||||
QUnit.test("Roll some dice!", function(assert) {
|
||||
|
||||
//
|
||||
// Test out our helper function first
|
||||
//
|
||||
assert.equal(Diceware.getNumValuesFromNumDice(1), 6);
|
||||
assert.equal(Diceware.getNumValuesFromNumDice(2), 36);
|
||||
assert.equal(Diceware.getNumValuesFromNumDice(3), 216);
|
||||
assert.equal(Diceware.getNumValuesFromNumDice(4), 1296);
|
||||
|
||||
assert.throws(function() {Diceware.getNumValuesFromNumDice(0); }, /zero/, "Zero");
|
||||
assert.throws(function() {Diceware.getNumValuesFromNumDice(-1); }, /negative/, "Negative value");
|
||||
|
||||
assert.equal(Diceware.rollDice(1).length, 1);
|
||||
assert.equal(Diceware.rollDice(3).length, 3);
|
||||
assert.equal(Diceware.rollDice(8).length, 8);
|
||||
|
||||
assert.throws(function() {Diceware.rollDice(0); }, /zero/, "Zero");
|
||||
assert.throws(function() {Diceware.rollDice(-1); }, /negative/, "Negative value");
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue