-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathGuessNumberGame.java
More file actions
58 lines (49 loc) · 1.47 KB
/
GuessNumberGame.java
File metadata and controls
58 lines (49 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class GuessNumberGame {
private int secretNumber;
private int attemptsCount;
private GuessSource guessSource;
private ResultOutput output;
public GuessNumberGame(int secretNumber,
int attemptsCount,
GuessSource source,
ResultOutput output) {
this.secretNumber = secretNumber;
this.attemptsCount = attemptsCount;
this.guessSource = source;
this.output = output;
}
public void play() {
showGreetings();
boolean guessedCorrectly = tryToGuess();
showGameOver(guessedCorrectly);
}
private boolean tryToGuess() {
boolean guessedCorrectly = false;
while(attemptsCount > 0 && !guessedCorrectly) {
int number = guess();
if(number == secretNumber) {
guessedCorrectly = true;
} else {
showTryAgain();
}
attemptsCount--;
}
return guessedCorrectly;
}
private void showGreetings() {
output.output("Enter your number: ");
}
private void showTryAgain () {
output.output("Try again");
}
private void showGameOver(boolean guessedCorrectly) {
if(guessedCorrectly) {
output.output("Congratulation, you won!");
} else {
output.output("You lose!");
}
}
private int guess() {
return guessSource.guess();
}
}