-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathGuessNumberGame.java
More file actions
66 lines (56 loc) · 1.8 KB
/
GuessNumberGame.java
File metadata and controls
66 lines (56 loc) · 1.8 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
59
60
61
62
63
64
65
66
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class GuessNumberGame {
@Value("15") // Error:java: javacTask: source release 8 requires target release 1.8 - везде Java 8 стоит
private int secretNumber;
@Value("3")
private int attemptsCount;
private GuessSource guessSource;
private ResultOutput output;
@Autowired
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();
}
}