11package com .github .zipcodewilmington .casino .games .numberguess ;
22
3+ import java .util .Random ;
4+ import java .util .Scanner ;
5+
36import com .github .zipcodewilmington .casino .GameInterface ;
47import com .github .zipcodewilmington .casino .PlayerInterface ;
58
6- /**
7- * Created by leon on 7/21/2020.
8- */
9+
910public class NumberGuessGame implements GameInterface {
1011
12+ private final NumberGuessPlayer player ;
13+ private final Random random ;
14+ private final Scanner scanner ;
15+
16+ private int number ;
17+ private int guesses ;
18+ private int guess ;
19+ private boolean playAgain ;
20+
21+
22+ public NumberGuessGame (NumberGuessPlayer player , Random random , Scanner scanner ) {
23+ this .player = player ;
24+ this .random = random ;
25+ this .scanner = scanner ;
26+ }
27+
28+ public void play () {
29+ System .out .println ("Welcome to Number Guess Game!===" );
30+
31+ boolean playAgain = true ;
32+
33+ while (playAgain ) {
34+ playRound ();
35+ }
36+
37+ System .out .print ("Do you want to play again? (yes/no): " );
38+ String response = scanner .next ();
39+ playAgain = response .equalsIgnoreCase ("yes" );
40+
41+
42+ System .out .println ("Thanks for playing Number Guess Game!" );
43+ }
44+
45+ private void playRound () {
46+ number = random .nextInt (100 ) + 1 ; // Random number between 1 and 100
47+ guesses = 0 ;
48+
49+ while (true ) {
50+ // Prompt the user for a guess
51+ System .out .print ("Enter a guess between 1 and 100: " );
52+ int guess = scanner .nextInt ();
53+
54+ // Count this guess
55+ guesses ++;
56+
57+ // Check if the guess is correct
58+ if (guess == number ) {
59+ System .out .println ("CONGRATULATIONS YOU WIN! You guessed it in " + guesses + " guesses." );
60+ break ;
61+ }
62+ // Too low
63+ else if (guess < number ) {
64+ System .out .println ("Too Low!" );
65+ }
66+ // Too high
67+ else if (guess > number ) {
68+ System .out .println ("Too High!" );
69+ }
70+
71+ // Check if the player has used all 10 guesses
72+ if (guesses >= 10 ) {
73+ System .out .println ("You have run out of guesses! The number was " + number + "." );
74+ break ;
75+ }
76+
77+ }
78+ scanner .close ();
79+ }
80+
81+
1182 @ Override
1283 public void add (PlayerInterface player ) {
1384 // TODO: store the player
@@ -20,6 +91,16 @@ public void remove(PlayerInterface player) {
2091
2192 @ Override
2293 public void run () {
23- // TODO: implement the number guessing game loop
94+ if (guess == number ) {
95+ System .out .println ("CONGRATULATIONS YOU WIN! You guessed it in " + guesses + " guesses." );
96+ }
97+ // Too low
98+ else if (guess < number ) {
99+ System .out .println ("Too Low!" );
100+ }
101+ // Too high
102+ else if (guess > number ) {
103+ System .out .println ("Too High!" );
104+ } // TODO: implement the number guessing game loop
24105 }
25106}
0 commit comments