summaryrefslogtreecommitdiff
path: root/dice/src/main/java/bjc/dicelang/neodice/die
diff options
context:
space:
mode:
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/neodice/die')
-rw-r--r--dice/src/main/java/bjc/dicelang/neodice/die/PolyhedralDie.java46
-rw-r--r--dice/src/main/java/bjc/dicelang/neodice/die/RerollDie.java92
2 files changed, 0 insertions, 138 deletions
diff --git a/dice/src/main/java/bjc/dicelang/neodice/die/PolyhedralDie.java b/dice/src/main/java/bjc/dicelang/neodice/die/PolyhedralDie.java
deleted file mode 100644
index 07ab183..0000000
--- a/dice/src/main/java/bjc/dicelang/neodice/die/PolyhedralDie.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package bjc.dicelang.neodice.die;
-
-import java.util.*;
-
-import bjc.dicelang.neodice.*;
-
-public class PolyhedralDie implements Die<Integer> {
- private final int sides;
-
- public PolyhedralDie(int sides) {
- this.sides = sides;
- }
-
- @Override
- public Integer roll(Random rng) {
- // Dice are one-based, not zero-based.
- return rng.nextInt(sides) + 1;
- }
-
- @Override
- public String toString() {
- return String.format("d%d", sides);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + sides;
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null) return false;
- if (getClass() != obj.getClass()) return false;
-
- PolyhedralDie other = (PolyhedralDie) obj;
-
- if (sides != other.sides) return false;
- else return true;
- }
-
-
-} \ No newline at end of file
diff --git a/dice/src/main/java/bjc/dicelang/neodice/die/RerollDie.java b/dice/src/main/java/bjc/dicelang/neodice/die/RerollDie.java
deleted file mode 100644
index 7925c9d..0000000
--- a/dice/src/main/java/bjc/dicelang/neodice/die/RerollDie.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package bjc.dicelang.neodice.die;
-
-import java.util.*;
-import java.util.function.*;
-
-import bjc.dicelang.neodice.*;
-import bjc.esodata.*;
-
-public class RerollDie<SideType> implements Die<SideType> {
- private final Die<SideType> contained;
-
- private final Predicate<SideType> condition;
- private final Function<MinMaxList<SideType>, SideType> chooser;
-
- private final Comparator<SideType> comparer;
-
- private int limit = Integer.MAX_VALUE;
-
- private RerollDie(
- Comparator<SideType> comparer,
- Die<SideType> contained,
- Predicate<SideType> condition,
- Function<MinMaxList<SideType>, SideType> chooser) {
- this.comparer = comparer;
-
- this.contained = contained;
-
- this.condition = condition;
- this.chooser = chooser;
- }
-
- private RerollDie(
- Comparator<SideType> comparer,
- Die<SideType> contained,
- Predicate<SideType> condition,
- Function<MinMaxList<SideType>, SideType> chooser,
- int limit) {
- this(comparer, contained, condition, chooser);
-
- this.limit = limit;
- }
-
- @Override
- public SideType roll(Random rng) {
- SideType roll = contained.roll(rng);
-
- MinMaxList<SideType> newRolls = new MinMaxList<>(comparer, roll);
-
- int rerollCount = 0;
- while (condition.test(roll) && rerollCount < limit) {
- roll = contained.roll(rng);
- newRolls.add(roll);
-
- rerollCount += 1;
- }
-
- return chooser.apply(newRolls);
- }
-
- public static <Side extends Comparable<Side>> Die<Side> create(
- Die<Side> contained,
- Predicate<Side> condition,
- Function<MinMaxList<Side>, Side> chooser) {
- return new RerollDie<>(Comparator.naturalOrder(), contained, condition, chooser);
- }
-
- public static <Side extends Comparable<Side>> Die<Side> create(
- Die<Side> contained,
- Predicate<Side> condition,
- Function<MinMaxList<Side>, Side> chooser,
- int limit) {
- return new RerollDie<>(Comparator.naturalOrder(), contained, condition, chooser, limit);
- }
-
-
- public static <Side> Die<Side> create(
- Comparator<Side> comparer,
- Die<Side> contained,
- Predicate<Side> condition,
- Function<MinMaxList<Side>, Side> chooser) {
- return new RerollDie<Side>(comparer, contained, condition, chooser);
- }
-
- public static <Side> Die<Side> create(
- Comparator<Side> comparer,
- Die<Side> contained,
- Predicate<Side> condition,
- Function<MinMaxList<Side>, Side> chooser,
- int limit) {
- return new RerollDie<Side>(comparer, contained, condition, chooser, limit);
- }
-} \ No newline at end of file