summaryrefslogtreecommitdiff
path: root/src/Q4/RandomSumGame.java
diff options
context:
space:
mode:
authormo <mo.khan@gmail.com>2019-06-18 17:13:40 -0600
committermo <mo.khan@gmail.com>2019-06-18 17:13:40 -0600
commitae4c0a788d276d4793ab4f91276bdb7793ae8f95 (patch)
tree11b2e18d1ef74ae7e9d55a0c1caf81a64df9f8b0 /src/Q4/RandomSumGame.java
parentf9ce5bc529295696c841afc7c17c5b61083a8082 (diff)
implement simple craps
Diffstat (limited to 'src/Q4/RandomSumGame.java')
-rw-r--r--src/Q4/RandomSumGame.java65
1 files changed, 59 insertions, 6 deletions
diff --git a/src/Q4/RandomSumGame.java b/src/Q4/RandomSumGame.java
index 7976288..aa0aa00 100644
--- a/src/Q4/RandomSumGame.java
+++ b/src/Q4/RandomSumGame.java
@@ -5,10 +5,10 @@ import java.util.*;
public class RandomSumGame {
private boolean start;
- private int d1;
- private int d2;
- private int sum;
- private int valuePoint;
+ private int d1 = 0;
+ private int d2 = 0;
+ private int sum = 0;
+ private int valuePoint = 0;
private String status;
private PrintStream out;
@@ -16,19 +16,72 @@ public class RandomSumGame {
this.out = out;
}
- public void play(int d1, int d2) {}
-
public void play() {
this.rollDice();
this.play(this.d1, this.d2);
}
+ public void play(int d1, int d2) {
+ int total = d1 + d2;
+ this.puts("You rolled: %d", total);
+ if (!hasValuePoint()) {
+ switch (total) {
+ case 2:
+ case 3:
+ case 12:
+ this.puts("Craps! You lose.");
+ break;
+ case 7:
+ case 11:
+ this.puts("Natural! You win!");
+ break;
+ default:
+ this.puts("Value point established: %d", total);
+ this.valuePoint = total;
+ play();
+ break;
+ }
+ } else {
+ if (total == this.valuePoint) {
+ this.puts("You win!");
+ this.reset();
+ return;
+ } else if (total == 7) {
+ this.puts("You lose.");
+ this.reset();
+ return;
+ } else {
+ play();
+ }
+ }
+ }
+
public void rollDice() {
this.d1 = this.roll();
this.d2 = this.roll();
+ this.sum = this.d1 + this.d2;
}
private int roll() {
return new Random().nextInt(5) + 1;
}
+
+ private void puts(String format, Object... args) {
+ this.out.println(String.format(format, args));
+ }
+
+ private boolean hasValuePoint() {
+ return this.valuePoint > 0;
+ }
+
+ private void reset() {
+ this.valuePoint = this.d1 = this.d2 = this.sum = 0;
+ }
+
+ public static void main(String[] args) {
+ Scanner in = new Scanner(System.in);
+ System.out.println("Welcome to Craps");
+ RandomSumGame game = new RandomSumGame(System.out);
+ game.play();
+ }
}