From 40858cee415643769ee5f6216b0cd4335996ff2f Mon Sep 17 00:00:00 2001 From: bjculkin Date: Tue, 11 Apr 2017 17:51:13 -0400 Subject: General cleanup and fixes --- dice-lang/src/bjc/dicelang/dice/SimpleDie.java | 173 +++++++++++++++---------- 1 file changed, 106 insertions(+), 67 deletions(-) (limited to 'dice-lang/src/bjc/dicelang/dice/SimpleDie.java') diff --git a/dice-lang/src/bjc/dicelang/dice/SimpleDie.java b/dice-lang/src/bjc/dicelang/dice/SimpleDie.java index f8dd945..68050e0 100644 --- a/dice-lang/src/bjc/dicelang/dice/SimpleDie.java +++ b/dice-lang/src/bjc/dicelang/dice/SimpleDie.java @@ -1,68 +1,107 @@ -package bjc.dicelang.dice; - -public class SimpleDie implements Die { - private Die numDice; - private Die diceSize; - - public SimpleDie(long nDice, long size) { - numDice = new ScalarDie(nDice); - diceSize = new ScalarDie(size); - } - - public SimpleDie(Die nDice, long size) { - numDice = nDice; - diceSize = new ScalarDie(size); - } - - public SimpleDie(long nDice, Die size) { - numDice = new ScalarDie(nDice); - diceSize = size; - } - - public SimpleDie(Die nDice, Die size) { - numDice = nDice; - diceSize = size; - } - - @Override - public boolean canOptimize() { - if(diceSize.canOptimize() && diceSize.optimize() <= 1) - return numDice.canOptimize(); - else - return false; - } - - @Override - public long optimize() { - long optSize = diceSize.optimize(); - - if(optSize == 0) - return 0; - else - return numDice.optimize(); - } - - @Override - public long roll() { - long total = 0; - - long nDice = numDice.roll(); - long dSize = diceSize.roll(); - - for(int i = 0; i < nDice; i++) { - total += Math.abs(DiceBox.rng.nextLong()) % dSize + 1; - } - - return total; - } - - @Override - public long rollSingle() { - return Math.abs(DiceBox.rng.nextLong()) % diceSize.roll() + 1; - } - - @Override - public String toString() { - return numDice + "d" + diceSize; - } +package bjc.dicelang.dice; + +/** + * A simple group of dice. + * + * @author EVE + * + */ +public class SimpleDie implements Die { + private Die numDice; + private Die diceSize; + + /** + * Create a new dice group. + * + * @param nDice + * The number of dice. + * + * @param size + * The size of the dice. + */ + public SimpleDie(long nDice, long size) { + this(new ScalarDie(nDice), new ScalarDie(size)); + } + + /** + * Create a new dice group. + * + * @param nDice + * The number of dice. + * + * @param size + * The size of the dice. + */ + public SimpleDie(Die nDice, long size) { + this(nDice, new ScalarDie(size)); + } + + /** + * Create a new dice group. + * + * @param nDice + * The number of dice. + * + * @param size + * The size of the dice. + */ + public SimpleDie(long nDice, Die size) { + this(new ScalarDie(nDice), size); + } + + /** + * Create a new dice group. + * + * @param nDice + * The number of dice. + * + * @param size + * The size of the dice. + */ + public SimpleDie(Die nDice, Die size) { + numDice = nDice; + diceSize = size; + } + + @Override + public boolean canOptimize() { + if(diceSize.canOptimize() && diceSize.optimize() <= 1) + return numDice.canOptimize(); + else + return false; + } + + @Override + public long optimize() { + long optSize = diceSize.optimize(); + + if(optSize == 0) + return 0; + else + return numDice.optimize(); + } + + @Override + public long roll() { + long total = 0; + + long nDice = numDice.roll(); + long dSize = diceSize.roll(); + + for(int i = 0; i < nDice; i++) { + total += Math.abs(DiceBox.rng.nextLong()) % dSize + 1; + } + + return total; + } + + @Override + public long rollSingle() { + return Math.abs(DiceBox.rng.nextLong()) % diceSize.roll() + 1; + } + + @Override + public String toString() { + return numDice + "d" + diceSize; + } } \ No newline at end of file -- cgit v1.2.3