-
Notifications
You must be signed in to change notification settings - Fork 74
Expand file tree
/
Copy pathBlackJackGame.java
More file actions
54 lines (45 loc) · 1.6 KB
/
BlackJackGame.java
File metadata and controls
54 lines (45 loc) · 1.6 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
package blackjack.controller;
import blackjack.domain.cards.DealerCards;
import blackjack.domain.cards.PlayerCards;
import blackjack.domain.game.GameResult;
import blackjack.domain.person.Dealer;
import blackjack.domain.person.Player;
import blackjack.view.InputView;
import blackjack.view.ResultView;
import java.util.List;
public class BlackJackGame {
private final Dealer dealer;
private final List<Player> players;
public BlackJackGame() {
dealer = new Dealer();
players = Player.createPlayers(InputView.getPlayerNames(), dealer);
ResultView.printSetUpResult(dealer.getOpenedCard(), players);
}
public void play() {
askPlayers();
giveDealerCard();
printGameResult();
}
private void giveDealerCard() {
final DealerCards dealerCards = dealer.getDealerCards();
if (dealerCards.canReceiveMoreCard()) {
dealerCards.addCard(dealer.getPickedCard());
ResultView.printDealerReceiveCard();
}
}
private void askPlayers() {
for (Player player : players) {
askPlayer(player);
}
}
private void askPlayer(Player player) {
final PlayerCards playerCards = player.getPlayerCards();
while (playerCards.canReceiveMoreCard() && InputView.isHit(player)) {
playerCards.addCard(dealer.getPickedCard());
}
}
private void printGameResult() {
ResultView.printDealerAndPlayerCardResult(dealer.getDealerCards(), players);
ResultView.printGameResult(new GameResult(dealer.getDealerCards().getSumOfCards(), players));
}
}