-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathResultView.java
More file actions
61 lines (50 loc) · 1.78 KB
/
ResultView.java
File metadata and controls
61 lines (50 loc) · 1.78 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
package racing.view;
import racing.domain.Car;
import racing.domain.RacingResult;
import java.util.List;
public class ResultView {
private static final String OPERATE_RESULT = "실행 결과";
private static final String DISTANCE = "-";
private static final String ENTER = "\n";
private static final String BORDER = "라운드 종료!!";
public ResultView() {
printEmpty();
System.out.println(OPERATE_RESULT);
}
public void printResult(RacingResult racingResult, int carCount) {
for (int racingIdx = 0; racingIdx < racingResult.size(); racingIdx++) {
printCarName(racingResult.get(racingIdx));
printDistance(racingResult.get(racingIdx));
checkEachRound(racingIdx, carCount);
}
printEmpty();
printWinner(racingResult.getWinners());
}
private void printCarName(Car car) {
System.out.print(car.getName() + " : ");
}
private void printDistance(Car car) {
for (int length = 0; length < car.getDistance(); length++) {
System.out.print(DISTANCE);
}
printEmpty();
}
private void checkEachRound(int racingIdx, int carCount) {
if (isLastCar(racingIdx, carCount)) {
System.out.println(BORDER);
}
}
private boolean isLastCar(int racingIdx, int carCount) {
return (racingIdx + 1) % carCount == 0;
}
private void printEmpty() {
System.out.print(ENTER);
}
private void printWinner(List<String> winners) {
int lastIdx = winners.size() - 1;
for (int winnerIdx = 0; winnerIdx < lastIdx; winnerIdx++) {
System.out.print(winners.get(winnerIdx) + ",");
}
System.out.println(winners.get(lastIdx) + "가 최종 우승했습니다.");
}
}