-
Notifications
You must be signed in to change notification settings - Fork 708
/
Copy pathLadderApplication.java
41 lines (30 loc) · 1.26 KB
/
LadderApplication.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
package nextstep.ladder;
import nextstep.ladder.domain.Ladder;
import nextstep.ladder.domain.LadderResults;
import nextstep.ladder.domain.User;
import nextstep.ladder.domain.Users;
import nextstep.ladder.view.InputView;
import nextstep.ladder.view.OutputView;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
public class LadderApplication {
public static void main(String[] args) {
List<String> names = InputView.inputUserNames();
Users users = new Users(names);
List<String> results = InputView.inputLadderResult();
LadderResults ladderResults = new LadderResults(results);
int height = InputView.inputLadderHeight();
Ladder ladder = Ladder.createLadder(users.getUsers().size(), height, () -> new Random().nextBoolean());
OutputView.display(users, ladder, ladderResults);
List<User> usersAfter = users.getUsers().stream()
.map(user -> user.rideLadder(ladder))
.collect(Collectors.toList());
String name = InputView.inputUserName();
if (name.equals("all")) {
OutputView.announceAllUsers(usersAfter, ladderResults);
return;
}
OutputView.announceUser(name, usersAfter, ladderResults);
}
}