From 96e868388c7617136e916c27ddd90694c0bb8356 Mon Sep 17 00:00:00 2001 From: bjculkin Date: Mon, 27 Feb 2017 10:34:25 -0500 Subject: More refactoring --- .../src/bjc/dicelang/v2/dice/SimpleDieList.java | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java (limited to 'dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java') diff --git a/dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java b/dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java new file mode 100644 index 0000000..e5aef18 --- /dev/null +++ b/dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java @@ -0,0 +1,48 @@ +package bjc.dicelang.v2.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 -- cgit v1.2.3