diff options
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java')
| -rw-r--r-- | dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java b/dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java index be78279..1485c5e 100644 --- a/dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java +++ b/dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java @@ -2,10 +2,28 @@ package bjc.dicelang.dicev2; import java.util.Random; +/** + * Polyhedral die pool + * @author Ben Culkin + * + */ public class PolyhedralDie extends Die { + /** + * The number of dice in the pool. + */ public final int numDice; + + /** + * The number of sides on each die. + */ public final int numSides; + /** + * Create a new polyhedral die pool. + * + * @param numDice The number of dice in the pool. + * @param numSides The number of side on each die. + */ public PolyhedralDie(int numDice, int numSides) { super(); @@ -13,6 +31,13 @@ public class PolyhedralDie extends Die { this.numSides = numSides; } + /** + * Create a new polyhedral die pool. + * + * @param rnd The random number generator to use. + * @param numDice The number of dice in the pool. + * @param numSides The number of side on each die. + */ public PolyhedralDie(Random rnd, int numDice, int numSides) { super(rnd); @@ -20,6 +45,7 @@ public class PolyhedralDie extends Die { this.numSides = numSides; } + @Override public long[] roll() { long[] res = new long[numDice]; @@ -30,15 +56,18 @@ public class PolyhedralDie extends Die { return res; } + @Override public long rollSingle() { /* nextInt is from 0 (inclusive) to numSides (exclusive) */ return rng.nextInt(numSides) + 1; } + @Override public boolean canOptimize() { return numSides <= 1 || numDice == 0; } + @Override public long optimize() { if(numDice == 0 || numSides == 0) return 0; |
