-
Notifications
You must be signed in to change notification settings - Fork 748
/
Copy pathOutputView.java
72 lines (57 loc) · 2.32 KB
/
OutputView.java
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
67
68
69
70
71
72
package nextstep.ladder.view;
import engine.LinesCreator;
import nextstep.ladder.domain.ExecuteResult;
import nextstep.ladder.domain.LadderResult;
import nextstep.ladder.domain.NextStepLines;
import nextstep.ladder.domain.Participant;
import nextstep.ladder.domain.Participants;
import java.util.HashMap;
import java.util.Map;
public class OutputView {
public static final Map<Boolean, String> POINTS_LINE = new HashMap<>();
static {
POINTS_LINE.put(true, outputLineTrue());
POINTS_LINE.put(false, outputLineFalse());
}
public void outputResult(ExecuteResult executeResult, LinesCreator linesCreator, LadderResult ladderResult) {
System.out.println();
outputLadder(linesCreator);
ouputExecuteResult(executeResult);
}
private static void outputLadder(LinesCreator linesCreator) {
((NextStepLines) linesCreator).getLines().forEach(line -> {
line.getPoints().forEach(points -> System.out.print(POINTS_LINE.get(points)));
System.out.println("|");
});
}
public void outputParticipants(Participants participants) {
participants.getParticipants().forEach(participant -> System.out.print(participant.toString() + " "));
}
public static String outputLineTrue() {
StringBuilder outputLine = new StringBuilder("|");
for (int i = 0; i < Participant.MAX_NAME_LENGTH; i++) {
outputLine.append("-");
}
return outputLine.toString();
}
public static String outputLineFalse() {
StringBuilder outputLine = new StringBuilder("|");
for (int i = 0; i < Participant.MAX_NAME_LENGTH; i++) {
outputLine.append(" ");
}
return outputLine.toString();
}
public void ouputExecuteResult(ExecuteResult executeResult) {
executeResult.getResults().forEach(resultStr -> System.out.print(String.format("%-5s", resultStr) + " "));
System.out.println();
}
public void outputParticipantResult(String partition) {
System.out.println(partition);
}
public void outputParticipantAllResult(LadderResult ladderResult) {
System.out.println("전체결과");
ladderResult.getPlayerToReward().forEach(
(participant, result) -> System.out.println(participant.getName() + ":" + result)
);
}
}