From eda9a86d8d48758e9982cfffd470c3b38a0a4b0b Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sat, 21 Nov 2020 23:11:43 -0500 Subject: Make dice generic Convert dice from dealing exclusively with ints, to deal with objects of arbitrary types --- .../dicelang/neodice/diepool/ExpandDiePool.java | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java (limited to 'dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java') diff --git a/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java b/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java new file mode 100644 index 0000000..7c58e72 --- /dev/null +++ b/dice/src/main/java/bjc/dicelang/neodice/diepool/ExpandDiePool.java @@ -0,0 +1,25 @@ +package bjc.dicelang.neodice.diepool; + +import java.util.*; +import java.util.function.*; +import java.util.stream.*; + +import bjc.dicelang.neodice.*; + +public class ExpandDiePool implements IDiePool { + private final IDie contained; + + private final BiFunction, Random, Stream> expander; + + public ExpandDiePool(IDie contained, + BiFunction, Random, Stream> expander) { + this.contained = contained; + this.expander = expander; + } + + + @Override + public Stream roll(Random rng) { + return expander.apply(contained, rng); + } +} -- cgit v1.2.3