summaryrefslogtreecommitdiff
path: root/dice/src/main/java/bjc/dicelang/dicev2/FudgeDie.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/dicev2/FudgeDie.java')
-rw-r--r--dice/src/main/java/bjc/dicelang/dicev2/FudgeDie.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/dice/src/main/java/bjc/dicelang/dicev2/FudgeDie.java b/dice/src/main/java/bjc/dicelang/dicev2/FudgeDie.java
new file mode 100644
index 0000000..21fca1d
--- /dev/null
+++ b/dice/src/main/java/bjc/dicelang/dicev2/FudgeDie.java
@@ -0,0 +1,42 @@
+package bjc.dicelang.dicev2;
+
+import java.util.Random;
+
+public class FudgeDie extends Die {
+ public final int numDice;
+
+ public FudgeDie(int numDice) {
+ super();
+
+ this.numDice = numDice;
+ }
+
+ public FudgeDie(Random rnd, int numDice) {
+ super(rnd);
+
+ this.numDice = numDice;
+ }
+
+ public long[] roll() {
+ long[] res = new long[numDice];
+
+ for(int i = 0; i < numDice; i++) {
+ res[i] = rollSingle();
+ }
+
+ return res;
+ }
+
+ public long rollSingle() {
+ /* Return an int in the range [-1, 1] */
+ return rng.nextInt(3) - 1;
+ }
+
+ public boolean canOptimize() {
+ return numDice == 0;
+ }
+
+ public long optimize() {
+ return 0;
+ }
+}