diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c995aa5 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.debug.settings.onBuildFailureProceed": true +} \ No newline at end of file diff --git a/java/src/main/java/Bins.java b/java/src/main/java/Bins.java index b9da83e..5645a5c 100644 --- a/java/src/main/java/Bins.java +++ b/java/src/main/java/Bins.java @@ -1,4 +1,26 @@ public class Bins { + private int min; + private int max; + private int[] bins; + + public Bins(int min, int max) { + this.min = min; + this.max = max; + this.bins = new int[max - min +1]; + } + + public int getBin(int number) { + return bins[number-min]; + } + + public void incrementBin(int number) { + bins[number - min]++; + } + + + + + } diff --git a/java/src/main/java/Dice.java b/java/src/main/java/Dice.java index 2283c96..a67a2c3 100644 --- a/java/src/main/java/Dice.java +++ b/java/src/main/java/Dice.java @@ -1,4 +1,33 @@ + +import java.util.Random; + public class Dice { + private int numberOfDice; + + public Dice(int numberOfDice) { + this.numberOfDice = numberOfDice; + } + + public int tossAndSum() { + Random random = new Random(); + int sum = 0; + for (int i = 0; i < numberOfDice; i++) { + sum += random.nextInt(6) + 1; + } + return sum; + } + + public static void main(String[] args) { + Dice dice = new Dice(5); // for yatzee + Dice dice1 = new Dice(2); // for craps + + Integer toss = dice.tossAndSum(); + Integer toss1 = dice1.tossAndSum(); -} + System.out.println("Toss and sum of 5 dice: " + toss); + System.out.println("Toss and sum of 2 dice: " + toss1); + } + + +} \ No newline at end of file diff --git a/java/src/main/java/Simulation.java b/java/src/main/java/Simulation.java index 73d86e8..1f5e9af 100644 --- a/java/src/main/java/Simulation.java +++ b/java/src/main/java/Simulation.java @@ -1,5 +1,42 @@ + public class Simulation { + private int numberOfDice; + private int numberOfTosses; + private Dice dice; + private Bins bins; + + public static void main(String[] args) { + Simulation sim = new Simulation(2, 10000); + sim.runSimulation(); + sim.printResults(); + } + + public Simulation(int numberOfDice, int numberOfTosses) { + this.numberOfDice = numberOfDice; + this.numberOfTosses = numberOfTosses; + this.dice = new Dice(numberOfDice); + this.bins = new Bins(numberOfDice, numberOfDice * 6); + } + + public void runSimulation() { + for (int i = 0; i < numberOfTosses; i++) { + int result = dice.tossAndSum(); + bins.incrementBin(result); + } + } + public void printResults() { + System.out.println("***"); + System.out.println("Simulation of " + numberOfDice + " dice tossed for " + numberOfTosses + " times."); + System.out.println("***"); + for (int i = numberOfDice; i <= numberOfDice * 6; i++) { + int count = bins.getBin(i); + double percentage = (double) count / numberOfTosses; + int stars = (int) (percentage * 100); + String asterisks = "*".repeat(stars); + System.out.printf("%2d : %8d: %.2f %s%n", i, count, percentage, asterisks); + } + } } diff --git a/java/src/main/java/Test.java b/java/src/main/java/Test.java new file mode 100644 index 0000000..6ab5bd9 --- /dev/null +++ b/java/src/main/java/Test.java @@ -0,0 +1,21 @@ + +public class Test { + + public static void main(String args []) { + Dice dice1 = new Dice(1); + int result1 = dice1.tossAndSum(); + if (result1 >= 1 && result1 <= 6) { + System.out.println("It works " + result1); + } + + Dice dice2 = new Dice(2); + int result2 = dice2.tossAndSum(); + if (result2 >= 2 && result1 <= 12) { + System.out.println("It works " + result1); + } + + } + + +} + diff --git a/java/target/classes/Bins.class b/java/target/classes/Bins.class new file mode 100644 index 0000000..c94c319 Binary files /dev/null and b/java/target/classes/Bins.class differ diff --git a/java/target/classes/Dice.class b/java/target/classes/Dice.class new file mode 100644 index 0000000..a0271aa Binary files /dev/null and b/java/target/classes/Dice.class differ diff --git a/java/target/classes/Simulation.class b/java/target/classes/Simulation.class new file mode 100644 index 0000000..e983885 Binary files /dev/null and b/java/target/classes/Simulation.class differ diff --git a/java/target/classes/Test.class b/java/target/classes/Test.class new file mode 100644 index 0000000..dd0d9e5 Binary files /dev/null and b/java/target/classes/Test.class differ