diff options
Diffstat (limited to 'dice-lang/src/bjc/dicelang/dice/SimpleDie.java')
| -rw-r--r-- | dice-lang/src/bjc/dicelang/dice/SimpleDie.java | 173 |
1 files changed, 106 insertions, 67 deletions
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 |
