diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2017-07-19 23:13:21 -0400 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2017-07-19 23:40:18 -0400 |
commit | 3fccdd3d61d96d3c979f72c7a9d9c26420ae3656 (patch) | |
tree | c2c8c5f5907eac91bef42d9026acd9d87554658c | |
parent | 3a5f09ac15642bbebf7351ec92ad2bee7f0b0acc (diff) |
Implement exploding dice
-rw-r--r-- | src/dice.js | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/dice.js b/src/dice.js index 213eda8..b60af68 100644 --- a/src/dice.js +++ b/src/dice.js @@ -43,7 +43,16 @@ const subtract = (die1, die2) => { const explode = (die1, die2) => { return () => { - return die1() + const explodeOn = roll(die1) + return die2().map(die => () => { + let lastRoll = die() + let total = lastRoll + while (lastRoll >= explodeOn) { + lastRoll = die() + total += lastRoll + } + return total + }) } } |