diff options
| author | Ben Culkin <scorpress@gmail.com> | 2020-10-06 19:14:55 -0400 |
|---|---|---|
| committer | Ben Culkin <scorpress@gmail.com> | 2020-10-06 19:14:55 -0400 |
| commit | a166818ea312c83489d9397165bd16aa61fe5438 (patch) | |
| tree | 8dc4741b987e45611d3929db91a4fe1ab7ad01a5 /dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java | |
| parent | 5a26fb2c0d899b1c80fabb39366a7b7db4d8ca41 (diff) | |
Info cleanup
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; |
