diff options
| author | Ben Culkin <scorpress@gmail.com> | 2020-11-21 18:10:30 -0500 |
|---|---|---|
| committer | Ben Culkin <scorpress@gmail.com> | 2020-11-21 18:10:30 -0500 |
| commit | b5c2fb1ed923d43412694729b4445a66fa9f47fc (patch) | |
| tree | 2b9dc847976f3a5f7d7a2d48cff0a50e962efeb0 /dice/src/main/java/bjc/dicelang/neodice/die/PolyhedralDie.java | |
| parent | 785a1ed2437d9810b39deb376c163e0e3e73160f (diff) | |
Restructure new die implementation
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/neodice/die/PolyhedralDie.java')
| -rw-r--r-- | dice/src/main/java/bjc/dicelang/neodice/die/PolyhedralDie.java | 46 |
1 files changed, 46 insertions, 0 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 new file mode 100644 index 0000000..c1bb2ac --- /dev/null +++ b/dice/src/main/java/bjc/dicelang/neodice/die/PolyhedralDie.java @@ -0,0 +1,46 @@ +package bjc.dicelang.neodice.die; + +import java.util.*; + +import bjc.dicelang.neodice.*; + +public class PolyhedralDie implements Die { + private final int sides; + + public PolyhedralDie(int sides) { + this.sides = sides; + } + + @Override + public int 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 |
