summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu>2017-03-01 10:13:41 -0500
committerbjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu>2017-03-01 10:13:41 -0500
commit36e0911c6ec27707a74f0b90b1052a16374243ea (patch)
tree08ca7723b0c0a6a7f3ce1830c59e5211e46168b8 /dice-lang/src/bjc/dicelang/dice/SimpleDieList.java
parent6ed83507953322c35a456d64d89f8f4f9cb0a6a1 (diff)
Package reorganization
Diffstat (limited to 'dice-lang/src/bjc/dicelang/dice/SimpleDieList.java')
-rw-r--r--dice-lang/src/bjc/dicelang/dice/SimpleDieList.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java b/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java
new file mode 100644
index 0000000..cca1f04
--- /dev/null
+++ b/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java
@@ -0,0 +1,48 @@
+package bjc.dicelang.dice;
+
+public class SimpleDieList implements DieList {
+ private Die numDice;
+ private Die size;
+
+ public SimpleDieList(Die nDice, Die sze) {
+ numDice = nDice;
+ size = sze;
+ }
+
+ public boolean canOptimize() {
+ if(size.canOptimize() && size.optimize() <= 1) {
+ return numDice.canOptimize();
+ } else {
+ return false;
+ }
+ }
+
+ public long[] optimize() {
+ int sze = (int)numDice.optimize();
+ long res = size.optimize();
+
+ long[] ret = new long[sze];
+
+ for(int i = 0; i < sze; i++) {
+ ret[i] = res;
+ }
+
+ return ret;
+ }
+
+ public long[] roll() {
+ int num = (int)numDice.roll();
+
+ long[] ret = new long[num];
+
+ for(int i = 0; i < num; i++) {
+ ret[i] = size.roll();
+ }
+
+ return ret;
+ }
+
+ public String toString() {
+ return numDice.toString() + "dl" + size.toString();
+ }
+} \ No newline at end of file