-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathLadderGame.java
More file actions
43 lines (36 loc) · 1.23 KB
/
LadderGame.java
File metadata and controls
43 lines (36 loc) · 1.23 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
package domain;
import java.util.ArrayList;
import java.util.List;
public class LadderGame {
private final Players players;
private final Prizes prizes;
private final Ladder ladder;
public LadderGame(Players players, Prizes prizes, Ladder ladder) {
if (players.size() != prizes.getPrizes().size()) {
throw new IllegalArgumentException("참여자 수와 결과 수가 일치해야 합니다.");
}
this.players = players;
this.prizes = prizes;
this.ladder = ladder;
}
public GameResult play() {
LadderResult ladderResult = ladder.play();
List<Result> results = new ArrayList<>();
for (int i = 0; i < players.size(); i++) {
int finalIndex = ladderResult.getPositions().get(i).getValue();
String playerName = players.getPlayers().get(i).getName().getValue();
String prize = prizes.getPrizeAt(finalIndex).getValue();
results.add(new Result(playerName, prize));
}
return new GameResult(results);
}
public Ladder getLadder() {
return ladder;
}
public Players getPlayers() {
return players;
}
public Prizes getPrizes() {
return prizes;
}
}