forked from woowacourse-precourse/java-baseball-6
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBullsAndCowsController.java
More file actions
50 lines (41 loc) · 1.39 KB
/
BullsAndCowsController.java
File metadata and controls
50 lines (41 loc) · 1.39 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
package baseball.controller;
import baseball.domain.ComparisonResult;
import baseball.domain.Computer;
import baseball.domain.InputNumberGenerator;
import baseball.domain.RandomNumberGenerator;
import baseball.view.InputView;
import baseball.view.OutputView;
import java.util.List;
public class BullsAndCowsController {
private final InputView inputView;
private final OutputView outputView;
public BullsAndCowsController(InputView inputView, OutputView outputView) {
this.inputView = inputView;
this.outputView = outputView;
}
public void run() {
outputView.printStartMessage();
int restart;
do {
playGame();
outputView.printRestartMessage();
restart = inputView.scanRestartOrEnd();
} while (restart == 1);
}
private void playGame() {
Computer computer = initComputer();
ComparisonResult result;
do {
outputView.printNumberRequestMessage();
result = computer.compare(scanInputNumber());
outputView.printResult(result);
} while (!result.isThreeStrike());
outputView.printEndGameMessage();
}
private Computer initComputer() {
return new Computer(RandomNumberGenerator.generate());
}
private List<Integer> scanInputNumber() {
return InputNumberGenerator.generate(inputView.scanThreeDigit());
}
}