summaryrefslogtreecommitdiff
path: root/dice/src/main/java/bjc/dicelang/neodice/diepool
diff options
context:
space:
mode:
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/neodice/diepool')
-rw-r--r--dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java25
-rw-r--r--dice/src/main/java/bjc/dicelang/neodice/diepool/FixedDiePool.java56
-rw-r--r--dice/src/main/java/bjc/dicelang/neodice/diepool/TimesDiePool.java54
-rw-r--r--dice/src/main/java/bjc/dicelang/neodice/diepool/TransformDiePool.java52
4 files changed, 0 insertions, 187 deletions
diff --git a/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java b/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java
deleted file mode 100644
index 97acc79..0000000
--- a/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package bjc.dicelang.neodice.diepool;
-
-import java.util.*;
-import java.util.function.*;
-import java.util.stream.*;
-
-import bjc.dicelang.neodice.*;
-
-public class ExpandDiePool<SideType> implements DiePool<SideType> {
- private final Die<SideType> contained;
-
- private final BiFunction<Die<SideType>, Random, Stream<SideType>> expander;
-
- public ExpandDiePool(Die<SideType> contained,
- BiFunction<Die<SideType>, Random, Stream<SideType>> expander) {
- this.contained = contained;
- this.expander = expander;
- }
-
-
- @Override
- public Stream<SideType> roll(Random rng) {
- return expander.apply(contained, rng);
- }
-}
diff --git a/dice/src/main/java/bjc/dicelang/neodice/diepool/FixedDiePool.java b/dice/src/main/java/bjc/dicelang/neodice/diepool/FixedDiePool.java
deleted file mode 100644
index 4950407..0000000
--- a/dice/src/main/java/bjc/dicelang/neodice/diepool/FixedDiePool.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package bjc.dicelang.neodice.diepool;
-
-import java.util.*;
-import java.util.stream.*;
-
-import bjc.dicelang.neodice.*;
-
-public class FixedDiePool<SideType> implements DiePool<SideType> {
- private final List<Die<SideType>> dice;
-
- public FixedDiePool(List<Die<SideType>> dice) {
- this.dice = dice;
- }
-
- @SafeVarargs
- public FixedDiePool(Die<SideType>...dice) {
- this.dice = new ArrayList<>(dice.length);
- for (Die<SideType> die : dice) {
- this.dice.add(die);
- }
- }
-
- @Override
- public Stream<SideType> roll(Random rng) {
- return dice.stream().map((die) -> die.roll(rng));
- }
-
- @Override
- public List<Die<SideType>> contained() {
- return dice;
- }
-
-
- @Override
- public String toString() {
- return dice.stream()
- .map(Die<SideType>::toString)
- .collect(Collectors.joining(", "));
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(dice);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null) return false;
- if (getClass() != obj.getClass()) return false;
-
- FixedDiePool<?> other = (FixedDiePool<?>) obj;
-
- return Objects.equals(dice, other.dice);
- }
-} \ No newline at end of file
diff --git a/dice/src/main/java/bjc/dicelang/neodice/diepool/TimesDiePool.java b/dice/src/main/java/bjc/dicelang/neodice/diepool/TimesDiePool.java
deleted file mode 100644
index e039e47..0000000
--- a/dice/src/main/java/bjc/dicelang/neodice/diepool/TimesDiePool.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package bjc.dicelang.neodice.diepool;
-
-import java.util.*;
-import java.util.stream.*;
-
-import bjc.dicelang.neodice.*;
-
-public class TimesDiePool<SideType> implements DiePool<SideType> {
- private final Die<SideType> contained;
- private final int numDice;
-
- public TimesDiePool(Die<SideType> contained, int numDice) {
- this.contained = contained;
- this.numDice = numDice;
- }
-
- @Override
- public Stream<SideType> roll(Random rng) {
- return Stream.generate(() -> contained.roll(rng))
- .limit(numDice);
- }
-
- @Override
- public List<Die<SideType>> contained() {
- List<Die<SideType>> results = new ArrayList<>(numDice);
-
- for (int index = 0; index < numDice; index++) {
- results.add(contained);
- }
-
- return results;
- }
-
- @Override
- public String toString() {
- return String.format("%d%s", numDice, contained);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(contained, numDice);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null) return false;
- if (getClass() != obj.getClass()) return false;
-
- TimesDiePool<?> other = (TimesDiePool<?>) obj;
-
- return Objects.equals(contained, other.contained) && numDice == other.numDice;
- }
-} \ No newline at end of file
diff --git a/dice/src/main/java/bjc/dicelang/neodice/diepool/TransformDiePool.java b/dice/src/main/java/bjc/dicelang/neodice/diepool/TransformDiePool.java
deleted file mode 100644
index 80b563f..0000000
--- a/dice/src/main/java/bjc/dicelang/neodice/diepool/TransformDiePool.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package bjc.dicelang.neodice.diepool;
-
-import java.util.*;
-import java.util.function.*;
-import java.util.stream.*;
-
-import bjc.dicelang.neodice.*;
-
-public class TransformDiePool<SideType> implements DiePool<SideType> {
- private final DiePool<SideType> contained;
-
- private UnaryOperator<Stream<SideType>> transform;
-
- public TransformDiePool(DiePool<SideType> contained,
- UnaryOperator<Stream<SideType>> transform) {
- super();
- this.contained = contained;
- this.transform = transform;
- }
-
- @Override
- public Stream<SideType> roll(Random rng) {
- return transform.apply(contained.roll(rng));
- }
-
- @Override
- public List<Die<SideType>> contained() {
- return contained.contained();
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(contained, transform);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null) return false;
- if (getClass() != obj.getClass()) return false;
-
- TransformDiePool<?> other = (TransformDiePool<?>) obj;
-
- return Objects.equals(contained, other.contained)
- && Objects.equals(transform, other.transform);
- }
-
- @Override
- public String toString() {
- return contained.toString() + "(transformed)";
- }
-}