summaryrefslogtreecommitdiff
path: root/base/src/bjc/dicelang/dice/DieList.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-10-25 12:10:14 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-10-25 12:10:14 -0300
commit7bda9de511a5642efb297eae98c6ea7c42b27754 (patch)
treedff1aa772b9ac088c5bd07b8d10d944cbff89f96 /base/src/bjc/dicelang/dice/DieList.java
parentf028ea6dc555fc5192a96b00b8e96e90dbf6de55 (diff)
Start switch to maven modules
Diffstat (limited to 'base/src/bjc/dicelang/dice/DieList.java')
-rw-r--r--base/src/bjc/dicelang/dice/DieList.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/base/src/bjc/dicelang/dice/DieList.java b/base/src/bjc/dicelang/dice/DieList.java
new file mode 100644
index 0000000..48006d4
--- /dev/null
+++ b/base/src/bjc/dicelang/dice/DieList.java
@@ -0,0 +1,31 @@
+package bjc.dicelang.dice;
+
+/**
+ * Represents a group of dice.
+ *
+ * @author Ben Culkin.
+ */
+public interface DieList {
+ /**
+ * Can this list be optimized?
+ *
+ * @return Whether or not this list can be optimized.
+ */
+ boolean canOptimize();
+
+ /**
+ * Optimize this list, if it can be done.
+ *
+ * Invoking this on unoptimizable expression is undefined.
+ *
+ * @return The optimized form of this list.
+ */
+ long[] optimize();
+
+ /**
+ * Roll this group of dice.
+ *
+ * @return A possible roll of this group.
+ */
+ long[] roll();
+}