diff options
Diffstat (limited to 'src/Q4/RandomSumGame.java')
| -rw-r--r-- | src/Q4/RandomSumGame.java | 65 |
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(); + } } |
