summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/dice/MathDie.java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2017-04-11 17:51:13 -0400
committerbjculkin <bjculkin@mix.wvu.edu>2017-04-11 17:51:13 -0400
commit40858cee415643769ee5f6216b0cd4335996ff2f (patch)
tree86b1c334fa2e5b79cddc16984f5ad43c3c72e41f /dice-lang/src/bjc/dicelang/dice/MathDie.java
parent767ca1b248da19b754d42a814b71b43ef16090be (diff)
General cleanup and fixes
Diffstat (limited to 'dice-lang/src/bjc/dicelang/dice/MathDie.java')
-rw-r--r--dice-lang/src/bjc/dicelang/dice/MathDie.java193
1 files changed, 114 insertions, 79 deletions
diff --git a/dice-lang/src/bjc/dicelang/dice/MathDie.java b/dice-lang/src/bjc/dicelang/dice/MathDie.java
index 1d6b2fa..aba58a3 100644
--- a/dice-lang/src/bjc/dicelang/dice/MathDie.java
+++ b/dice-lang/src/bjc/dicelang/dice/MathDie.java
@@ -1,80 +1,115 @@
-package bjc.dicelang.dice;
-
-public class MathDie implements Die {
- public static enum MathOp {
- ADD, SUBTRACT, MULTIPLY;
-
- @Override
- public String toString() {
- switch(this) {
- case ADD:
- return "+";
- case SUBTRACT:
- return "-";
- case MULTIPLY:
- return "*";
- default:
- return this.name();
- }
- }
- }
-
- private MathDie.MathOp type;
-
- private Die left;
- private Die right;
-
- public MathDie(MathDie.MathOp op, Die lft, Die rght) {
- type = op;
-
- left = lft;
- right = rght;
- }
-
- @Override
- public boolean canOptimize() {
- return left.canOptimize() && right.canOptimize();
- }
-
- private long performOp(long lft, long rght) {
- switch(type) {
- case ADD:
- return lft + rght;
- case SUBTRACT:
- return lft - rght;
- case MULTIPLY:
- return lft * rght;
- default:
- return 0;
- }
- }
-
- @Override
- public long optimize() {
- long lft = left.optimize();
- long rght = right.optimize();
-
- return performOp(lft, rght);
- }
-
- @Override
- public long roll() {
- long lft = left.roll();
- long rght = right.roll();
-
- return performOp(lft, rght);
- }
-
- @Override
- public long rollSingle() {
- long lft = left.rollSingle();
- long rght = right.rollSingle();
-
- return performOp(lft, rght);
- }
-
- @Override
- public String toString() {
- return left.toString() + " " + type.toString() + " " + right.toString();
- }
+package bjc.dicelang.dice;
+
+/**
+ * A die that represents two dice with an applied math operator.
+ *
+ * @author EVE
+ *
+ */
+public class MathDie implements Die {
+ /**
+ * The types of a math operator.
+ *
+ * @author EVE
+ *
+ */
+ public static enum MathOp {
+ /**
+ * Add two dice.
+ */
+ ADD,
+ /**
+ * Subtract two dice.
+ */
+ SUBTRACT,
+ /**
+ * Multiply two dice.
+ */
+ MULTIPLY;
+
+ @Override
+ public String toString() {
+ switch(this) {
+ case ADD:
+ return "+";
+ case SUBTRACT:
+ return "-";
+ case MULTIPLY:
+ return "*";
+ default:
+ return this.name();
+ }
+ }
+ }
+
+ private MathDie.MathOp type;
+
+ private Die left;
+ private Die right;
+
+ /**
+ * Create a new math die.
+ *
+ * @param op
+ * The operator to apply.
+ *
+ * @param lft
+ * The left operand.
+ *
+ * @param rght
+ * The right operand.
+ */
+ public MathDie(MathDie.MathOp op, Die lft, Die rght) {
+ type = op;
+
+ left = lft;
+ right = rght;
+ }
+
+ @Override
+ public boolean canOptimize() {
+ return left.canOptimize() && right.canOptimize();
+ }
+
+ private long performOp(long lft, long rght) {
+ switch(type) {
+ case ADD:
+ return lft + rght;
+ case SUBTRACT:
+ return lft - rght;
+ case MULTIPLY:
+ return lft * rght;
+ default:
+ return 0;
+ }
+ }
+
+ @Override
+ public long optimize() {
+ long lft = left.optimize();
+ long rght = right.optimize();
+
+ return performOp(lft, rght);
+ }
+
+ @Override
+ public long roll() {
+ long lft = left.roll();
+ long rght = right.roll();
+
+ return performOp(lft, rght);
+ }
+
+ @Override
+ public long rollSingle() {
+ long lft = left.rollSingle();
+ long rght = right.rollSingle();
+
+ return performOp(lft, rght);
+ }
+
+ @Override
+ public String toString() {
+ return left.toString() + " " + type.toString() + " " + right.toString();
+ }
} \ No newline at end of file