Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.debug.settings.onBuildFailureProceed": true
}
22 changes: 22 additions & 0 deletions java/src/main/java/Bins.java
Original file line number Diff line number Diff line change
@@ -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]++;
}






}
31 changes: 30 additions & 1 deletion java/src/main/java/Dice.java
Original file line number Diff line number Diff line change
@@ -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);
}


}
37 changes: 37 additions & 0 deletions java/src/main/java/Simulation.java
Original file line number Diff line number Diff line change
@@ -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);
}
}

}
21 changes: 21 additions & 0 deletions java/src/main/java/Test.java
Original file line number Diff line number Diff line change
@@ -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);
}

}


}

Binary file added java/target/classes/Bins.class
Binary file not shown.
Binary file added java/target/classes/Dice.class
Binary file not shown.
Binary file added java/target/classes/Simulation.class
Binary file not shown.
Binary file added java/target/classes/Test.class
Binary file not shown.