summaryrefslogtreecommitdiff
path: root/dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java')
-rw-r--r--dice/src/main/java/bjc/dicelang/dicev2/PolyhedralDie.java29
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;