Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
4b5b9aa
feat: ํ”Œ๋ ˆ์ด์–ด ๋ฒ ํŒ… ๊ธฐ๋Šฅ ์ถ”๊ฐ€
jihwankim128 Mar 13, 2026
460719b
refactor: ํ”Œ๋ ˆ์ด์–ด ์ˆ˜์ต ๊ณ„์‚ฐ์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์‚ฌ์šฉ๋˜๋Š” getter ์ œ๊ฑฐ
jihwankim128 Mar 13, 2026
e869c70
refactor: ๋ธ”๋ž™์žญ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ๋กœ์ง ๋ถ„๋ฆฌ
jihwankim128 Mar 13, 2026
d81f8fb
refactor: ๋ธ”๋ž™์žญ ๋ฒ ํŒ…/๋ฏธ๋ฒ ํŒ… ์ „ํ™˜์— ์‰ฌ์šด ๊ตฌ์กฐ๋กœ ๊ฐœ์„ 
jihwankim128 Mar 13, 2026
967a9c2
refactor: ์ถ”๊ฐ€ ๋“œ๋กœ์šฐ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ๋กœ์ง ๋ถ„๋ฆฌ
jihwankim128 Mar 13, 2026
8af38b2
feat: ๋ธ”๋ž™์žญ์— ๋”ฐ๋ฅธ ์ˆ˜์ต ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
jihwankim128 Mar 13, 2026
ab14624
refactor: Enum ๊ฐ์ฒด์— ์ถœ๋ ฅ์„ ์œ„ํ•œ ์ •๋ณด ์ œ๊ฑฐ
jihwankim128 Mar 13, 2026
9a45a99
refactor: OutputView ์ฑ…์ž„ ๋ถ„๋ฆฌ
jihwankim128 Mar 13, 2026
d287993
refactor: ๊ฒŒ์ž„๋ชจ๋“œ ์ถ”์ƒํ™” ์ œ๊ฑฐ ํ›„ ์ •์ ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋กœ ์ˆ˜์ •
jihwankim128 Mar 13, 2026
cf79479
refactor: BetAmount ํด๋ž˜์Šค ํŒจํ‚ค์ง€ ์ด๋™
jihwankim128 Mar 13, 2026
9e660ae
refactor: ๊ฒฐ๊ณผ ๊ด€๋ จ ๋กœ์ง GameMode ํด๋ž˜์Šค๋กœ ์ด๋™
jihwankim128 Mar 13, 2026
f0b4ae4
fix: ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ธ”๋ž™์žญ ์ผ ๋•Œ ์ถ”๊ฐ€๋กœ ์นด๋“œ ๋ณด์—ฌ์ฃผ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •
jihwankim128 Mar 13, 2026
bd2c59e
refactor: ๋”œ๋Ÿฌ ๊ฒฐ๊ณผ ๊ณ„์‚ฐ์˜ ์ฑ…์ž„ ์ด๋™
jihwankim128 Mar 13, 2026
e7bcfd2
refactor: ๋ธ”๋ž™์žญ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ ๋กœ์ง ์ „๋žต ํŒจํ„ด์„ ํ†ตํ•ด ๊ฐœ์„ 
jihwankim128 Mar 13, 2026
7ff08ab
refactor: blackjackService ์ƒ์„ฑ ๋กœ์ง ์ฑ…์ž„ ์ด๋™
jihwankim128 Mar 13, 2026
9fba90d
refactor: ๊ฒฐ๊ณผ ์ถœ๋ ฅ ํ๋ฆ„ report ๊ด€๋ จ ๊ฐ์ฒด๋กœ ์ด๋™
jihwankim128 Mar 13, 2026
30cde16
fix: ๋”œ๋Ÿฌ ์ „์  ์ถœ๋ ฅ ๋กœ์ง ์˜คํƒˆ์ž ์ˆ˜์ •
jihwankim128 Mar 15, 2026
cf82145
refactor: ๊ฒŒ์ž„ ์‹ฌํŒ ์ฒ˜๋ฆฌ ๋กœ์ง ๊ฐœ์„ 
jihwankim128 Mar 15, 2026
9738438
refactor: GameMode ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ์—ฌ๋Ÿฌ ์ฑ…์ž„ ๋ถ„๋ฆฌ
jihwankim128 Mar 15, 2026
4e3811f
refactor: ํ”Œ๋ ˆ์ด์–ด ํƒ€์ž… ๊ณ„์ธต ์žฌ์„ค๊ณ„๋กœ Participant/Player ์ค‘๋ณต ์ œ๊ฑฐ
jihwankim128 Mar 15, 2026
0c9b30a
fix: ๋ธ”๋ž™์žญ ์ˆ˜์ต ๊ฒฐ๊ณผ ํ”Œ๋ ˆ์ด์–ด ์ถœ๋ ฅ ์ˆœ์„œ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ ํ•ด๊ฒฐ
jihwankim128 Mar 15, 2026
d6d63e9
refactor: ๋ฒ ํŒ… ์ˆ˜์ต ๊ณ„์‚ฐ ๋กœ์ง์„ BettingCalculator๋กœ ๋ถ„๋ฆฌ
jihwankim128 Mar 15, 2026
52fa0bd
docs: readme ์—…๋ฐ์ดํŠธ
jihwankim128 Mar 15, 2026
df7b53f
refactor: ์ œ๋„ˆ๋ฆญ์„ ํ™œ์šฉํ•œ ๋ธ”๋ž™์žญ ํƒ€์ž… ์•ˆ์ •์„ฑ ํ™•๋ณด
jihwankim128 Mar 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 49 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,52 @@
# java-blackjack

## ๊ฒŒ์ž„ ๋ชจ๋“œ

### ๋ฒ ํŒ… ๋ชจ๋“œ
ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฒ ํŒ… ๊ธˆ์•ก์„ ๊ฑธ๊ณ  ๊ฒŒ์ž„ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ˆ˜์ต/์†์‹ค์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

### ๋…ผ๋ฒ ํŒ… ๋ชจ๋“œ
๋ฒ ํŒ… ์—†์ด ์ˆœ์ˆ˜ ์Šน/๋ฌด/ํŒจ๋งŒ ์ง‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค.

---

## ๊ตฌํ˜„ ๊ธฐ๋Šฅ
- ๊ฒŒ์ž„์— ์ฐธ๊ฐ€ํ•  ์‚ฌ๋žŒ ์ด๋ฆ„ ์ž…๋ ฅ
- ์นด๋“œ ๋‚˜๋ˆ ์ฃผ๊ธฐ
- ์นด๋“œ 52์žฅ ์ƒ์„ฑ
- ์ •์ฑ…: ์‚ฌ์šฉํ•˜๋Š” ์นด๋“œ์— ๋Œ€ํ•ด ์ •์˜
- ์นด๋“œ์˜ ์ข…๋ฅ˜: ํ•˜ํŠธ, ๋‹ค์ด์•„, ํด๋กœ๋ฒ„, ์ŠคํŽ˜์ด๋“œ
- ์นด๋“œ์˜ ์ˆซ์ž: A, 2 ๋ถ€ํ„ฐ 10, J, Q, K
- ์นด๋“œ ๋ฝ‘๊ธฐ ๊ธฐ๋Šฅ์ด ํ•„์š”
- ๋”œ๋Ÿฌ๋Š” ์ž๊ธฐ ์ž์‹ ์˜ ์นด๋“œ๋„ ๋ฝ‘๋Š”๋‹ค.
- ๋”œ๋Ÿฌ๋Š” ๊ณต๊ฐœ์นด๋“œ 1์žฅ๊ณผ ๋น„๊ณต๊ฐœ ์นด๋“œ 1์žฅ์”ฉ ๋ฐ›๊ณ , ๊ณต๊ฐœ ์นด๋“œ ์ถœ๋ ฅ
- ์ฐธ์—ฌ์ž ๋ณ„ ์นด๋“œ ์ฃผ๊ธฐ
- ์ฐธ์—ฌ์ž๋“ค ์นด๋“œ ๋ชฉ๋ก ์ถœ๋ ฅ
- ํ”Œ๋ ˆ์ด์–ด ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๋ฅผ ๋” ๋ฐ›์„ ๊ฒƒ์ธ์ง€ ํ™•์ธ
- ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์นด๋“œ๋ฅผ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ ํ˜„์žฌ ์นด๋“œ ๋ชฉ๋ก ์ถœ๋ ฅ
- ๋”œ๋Ÿฌ์˜ Bust ํŒ์ •
- ์นด๋“œ ์ ์ˆ˜ ๊ณ„์‚ฐ
- Ace 1/11 ์ฒ˜๋ฆฌ ํ•„์š”
- ๋”œ๋Ÿฌ์˜ ์นด๋“œ ํ•ฉ์ด 16์ดํ•˜๋ฉด ์นด๋“œ 1์žฅ ๋ฐ›๊ธฐ
- ๋”œ๋Ÿฌ ์นด๋“œ์™€ ํ”Œ๋ ˆ์ด์–ด ์นด๋“œ ์ถœ๋ ฅํ•˜๊ธฐ
- ์นด๋“œ ๋ชฉ๋ก ์ถœ๋ ฅ
- ์นด๋“œ ์ˆซ์ž ํ•ฉ ์ถœ๋ ฅ
- ์ตœ์ข… ์ŠนํŒจ์—ฌ๋ถ€ ์ถœ๋ ฅ
- ๋”œ๋Ÿฌ์˜ ์ŠนํŒจ ์ถœ๋ ฅ
- ํ”Œ๋ ˆ์ด์–ด๋ณ„ ์ŠนํŒจ ์ถœ๋ ฅ

### ๊ณตํ†ต
- ๊ฒŒ์ž„์— ์ฐธ๊ฐ€ํ•  ์‚ฌ๋žŒ ์ด๋ฆ„ ์ž…๋ ฅ
- ์นด๋“œ 52์žฅ ์ƒ์„ฑ
- ์นด๋“œ ์ข…๋ฅ˜: ํ•˜ํŠธ, ๋‹ค์ด์•„, ํด๋กœ๋ฒ„, ์ŠคํŽ˜์ด๋“œ
- ์นด๋“œ ์ˆซ์ž: A, 2~10, J, Q, K
- ์ดˆ๊ธฐ ์นด๋“œ ๋ฐฐ๋ถ„
- ๋”œ๋Ÿฌ: ๊ณต๊ฐœ ์นด๋“œ 1์žฅ, ๋น„๊ณต๊ฐœ ์นด๋“œ 1์žฅ
- ํ”Œ๋ ˆ์ด์–ด: 2์žฅ
- ํ”Œ๋ ˆ์ด์–ด ์ˆœ์„œ๋Œ€๋กœ ์ถ”๊ฐ€ ์นด๋“œ ์ˆ˜๋ น ์—ฌ๋ถ€ ๊ฒฐ์ •
- ์นด๋“œ๋ฅผ ๋ฐ›์„ ๊ฒฝ์šฐ ํ˜„์žฌ ์นด๋“œ ๋ชฉ๋ก ์ถœ๋ ฅ
- ์นด๋“œ ์ ์ˆ˜ ๊ณ„์‚ฐ
- Ace: 1 ๋˜๋Š” 11๋กœ ๊ณ„์‚ฐ (๋ฒ„์ŠคํŠธ ๋ฐฉ์ง€ ์šฐ์„ )
- ๋”œ๋Ÿฌ ์ถ”๊ฐ€ ์นด๋“œ ์ˆ˜๋ น
- ์นด๋“œ ํ•ฉ์ด 16 ์ดํ•˜๋ฉด ์นด๋“œ 1์žฅ ์ถ”๊ฐ€
- ์ตœ์ข… ์นด๋“œ ๋ชฉ๋ก ๋ฐ ์ ์ˆ˜ ์ถœ๋ ฅ

### ๋ฒ ํŒ… ๋ชจ๋“œ
- ํ”Œ๋ ˆ์ด์–ด๋ณ„ ๋ฒ ํŒ… ๊ธˆ์•ก ์ž…๋ ฅ
- ์ตœ์†Œ 1์›, ์ตœ๋Œ€ 100๋งŒ์›
- ๊ฒŒ์ž„ ๊ฒฐ๊ณผ๋ณ„ ์ˆ˜์ต ๊ณ„์‚ฐ
- ์Šน๋ฆฌ: ๋ฒ ํŒ… ๊ธˆ์•ก๋งŒํผ ์ˆ˜์ต
- ํŒจ๋ฐฐ: ๋ฒ ํŒ… ๊ธˆ์•ก๋งŒํผ ์†์‹ค
- ๋ฌด์Šน๋ถ€: ์ˆ˜์ต ์—†์Œ
- ๋ธ”๋ž™์žญ: ๋ฒ ํŒ… ๊ธˆ์•ก์˜ 1.5๋ฐฐ ์ˆ˜์ต
- ๋”œ๋Ÿฌ ๋ฐ ํ”Œ๋ ˆ์ด์–ด๋ณ„ ์ตœ์ข… ์ˆ˜์ต ์ถœ๋ ฅ

### ๋…ผ๋ฒ ํŒ… ๋ชจ๋“œ
- ๋”œ๋Ÿฌ ๋ฐ ํ”Œ๋ ˆ์ด์–ด๋ณ„ ์ตœ์ข… ์Šน/๋ฌด/ํŒจ ์ถœ๋ ฅ

---

## ํŒ์ • ๊ทœ์น™
- ๋ฒ„์ŠคํŠธ: ์นด๋“œ ํ•ฉ์ด 21 ์ดˆ๊ณผ ์‹œ ์ฆ‰์‹œ ํŒจ๋ฐฐ
- ๋ธ”๋ž™์žญ: ์ตœ์ดˆ 2์žฅ์œผ๋กœ ํ•ฉ์ด 21
- ํ”Œ๋ ˆ์ด์–ด๋งŒ ๋ธ”๋ž™์žญ: 1.5๋ฐฐ ์ˆ˜์ต
- ๋‘˜ ๋‹ค ๋ธ”๋ž™์žญ: ๋ฌด์Šน๋ถ€
- ๋”œ๋Ÿฌ๋งŒ ๋ธ”๋ž™์žญ: ํ”Œ๋ ˆ์ด์–ด ํŒจ๋ฐฐ
- ์ ์ˆ˜ ๋น„๊ต: ๋ฒ„์ŠคํŠธ/๋ธ”๋ž™์žญ ์™ธ ๊ฒฝ์šฐ ์ ์ˆ˜๊ฐ€ ๋†’์€ ์ชฝ ์Šน๋ฆฌ
20 changes: 6 additions & 14 deletions src/main/java/BlackjackApplication.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,14 @@
import controller.BlackjackController;
import java.util.List;
import model.BlackjackService;
import model.card.Card;
import model.card.CardFactory;
import model.card.CardShuffler;
import model.card.Deck;
import controller.GameMode;
import model.BlackjackGame;
import model.card.SimpleCardShuffler;

public class BlackjackApplication {

public static void main(String[] args) {
CardShuffler cardShuffler = new SimpleCardShuffler();
List<Card> fullCards = CardFactory.createFullCards();
List<Card> shuffledCards = cardShuffler.shuffle(fullCards);
Deck deck = new Deck(shuffledCards);
BlackjackService blackjackService = new BlackjackService(deck);

BlackjackController controller = new BlackjackController(blackjackService);
controller.run();
new BlackjackController<>(
BlackjackGame.setup(new SimpleCardShuffler()),
GameMode.toBettingMode()
).run();
}
}
91 changes: 41 additions & 50 deletions src/main/java/controller/BlackjackController.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package controller;

import java.util.List;
import model.BlackjackService;
import model.judgement.DealerResult;
import model.BlackjackGame;
import model.judgement.Judgement;
import model.judgement.PlayerResult;
import model.paticipant.Dealer;
Expand All @@ -11,79 +9,72 @@
import view.InputView;
import view.OutputView;

public class BlackjackController {
public class BlackjackController<T extends Player> {

private final BlackjackService blackjackService;
private final BlackjackGame blackjackGame;
private final GameMode<T> gameMode;

public BlackjackController(BlackjackService blackjackService) {
this.blackjackService = blackjackService;;
public BlackjackController(BlackjackGame blackjackGame, GameMode<T> gameMode) {
this.blackjackGame = blackjackGame;
this.gameMode = gameMode;
}

public void run() {
Dealer dealer = new Dealer();
Players players = createPlayers();
Players<T> players = gameMode.createPlayers();

drawInitCards(dealer, players);
drawMoreCardByPlayer(dealer, players);

printFinalCards(dealer, players);
judgeGame(dealer, players);
initialDeal(dealer, players);
proceedTurns(dealer, players);
finishGame(dealer, players);
}

private Players createPlayers() {
List<String> names = InputView.readPlayerNames();
return Players.from(names);
private void initialDeal(Dealer dealer, Players<T> players) {
blackjackGame.drawInitCards(dealer, players);
OutputView.printCardOpen(dealer, players.players());
}

private void drawMoreCardByPlayer(Dealer dealer, Players players) {
players.forEach(this::chooseHitOrStand);
private void proceedTurns(Dealer dealer, Players<T> players) {
players.forEach(this::processPlayerTurn);

while (dealer.canHit()) {
OutputView.printToOpenDealerNewCard(dealer);
blackjackService.drawOneCard(dealer);
blackjackGame.drawOneCard(dealer);
}
}

private void drawInitCards(Dealer dealer, Players players) {
blackjackService.drawTwoCards(dealer, players);
OutputView.printCardOpen(players);
OutputView.printCardByDealer(dealer);
OutputView.printCardByPlayers(players);
}

private boolean canHitMore(Player player) {
return player.canHit() && readContinuation(player).isContinue();
}

private Continuation readContinuation(Player player) {
String inputCommand = InputView.readMoreCard(player);
return Continuation.from(inputCommand);
}
private void processPlayerTurn(Player player) {
if (player.isBlackjack()) {
return;
}

private void chooseHitOrStand(Player player) {
boolean printed = false;
while (canHitMore(player)) {
blackjackService.drawOneCard(player);
boolean hasDrawn = hitUntilStand(player);
if (!hasDrawn) {
OutputView.printCardByPlayer(player);
printed = true;
}
}

if (!printed) {
private boolean hitUntilStand(Player player) {
boolean hasDrawn = false;
while (canHitMore(player)) {
blackjackGame.drawOneCard(player);
OutputView.printCardByPlayer(player);
hasDrawn = true;
}
return hasDrawn;
}

private void printFinalCards(Dealer dealer, Players players) {
OutputView.printBlank();
OutputView.printCardByPlayerWithScore(dealer);
players.forEach(OutputView::printCardByPlayerWithScore);
private boolean canHitMore(Player player) {
return player.canHit() && readContinuation(player).isContinue();
}

private void judgeGame(Dealer dealer, Players players) {
PlayerResult playerResult = Judgement.judgeByPlayer(dealer, players);
DealerResult dealerResult = Judgement.judgeByDealer(playerResult);
private Continuation readContinuation(Player player) {
String inputCommand = InputView.readMoreCard(player);
return Continuation.from(inputCommand);
}

OutputView.printFinalResultHeader();
OutputView.printResultByDealer(dealerResult);
OutputView.printResultByPlayers(playerResult);
private void finishGame(Dealer dealer, Players<T> players) {
OutputView.printFinalCards(dealer, players.players());
PlayerResult<T> playerResult = Judgement.judgeByPlayer(dealer, players);
gameMode.reportResult(playerResult);
}
}
39 changes: 39 additions & 0 deletions src/main/java/controller/GameMode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package controller;

import controller.input.BettingPlayerReader;
import controller.input.NonBettingPlayerReader;
import controller.input.PlayerReader;
import controller.result.BettingResultReporter;
import controller.result.NonBettingResultReporter;
import controller.result.ResultReporter;
import model.judgement.PlayerResult;
import model.paticipant.BettingPlayer;
import model.paticipant.Player;
import model.paticipant.Players;

public class GameMode<T extends Player> {

private final PlayerReader<T> playerReader;
private final ResultReporter<T> resultReporter;

private GameMode(PlayerReader<T> playerReader, ResultReporter<T> resultReporter) {
this.playerReader = playerReader;
this.resultReporter = resultReporter;
}

public static GameMode<BettingPlayer> toBettingMode() {
return new GameMode<>(new BettingPlayerReader(), new BettingResultReporter());
}

public static GameMode<Player> toNonBettingMode() {
return new GameMode<>(new NonBettingPlayerReader(), new NonBettingResultReporter());
}

public Players<T> createPlayers() {
return playerReader.readPlayers();
}

public void reportResult(PlayerResult<T> playerResult) {
resultReporter.report(playerResult);
}
}
21 changes: 21 additions & 0 deletions src/main/java/controller/input/BettingPlayerReader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package controller.input;

import java.util.ArrayList;
import java.util.List;
import model.paticipant.BettingPlayer;
import model.paticipant.Players;
import view.InputView;

public class BettingPlayerReader implements PlayerReader<BettingPlayer> {

@Override
public Players<BettingPlayer> readPlayers() {
List<String> names = InputView.readPlayerNames();
List<BettingPlayer> players = new ArrayList<>();
for (String name : names) {
int betAmount = InputView.readBetAmount(name);
players.add(new BettingPlayer(name, betAmount));
}
return new Players<>(players);
}
}
19 changes: 19 additions & 0 deletions src/main/java/controller/input/NonBettingPlayerReader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package controller.input;

import java.util.List;
import java.util.stream.Collectors;
import model.paticipant.Player;
import model.paticipant.Players;
import view.InputView;

public class NonBettingPlayerReader implements PlayerReader<Player> {

@Override
public Players<Player> readPlayers() {
List<String> names = InputView.readPlayerNames();
List<Player> players = names.stream()
.map(Player::new)
.collect(Collectors.toList());
return new Players<>(players);
}
}
10 changes: 10 additions & 0 deletions src/main/java/controller/input/PlayerReader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package controller.input;

import model.paticipant.Player;
import model.paticipant.Players;

public interface PlayerReader<T extends Player> {

Players<T> readPlayers();

}
23 changes: 23 additions & 0 deletions src/main/java/controller/result/BettingResultReporter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package controller.result;

import java.util.Map;
import model.judgement.BettingCalculator;
import model.judgement.PlayerResult;
import model.judgement.Profit;
import model.paticipant.BettingPlayer;
import view.ProfitReportView;

public class BettingResultReporter implements ResultReporter<BettingPlayer> {

private final BettingCalculator calculator = new BettingCalculator();

@Override
public void report(PlayerResult<BettingPlayer> playerResult) {
Map<BettingPlayer, Profit> profits = calculator.calculateProfits(playerResult);
Profit dealerProfit = calculator.calculateDealerProfit(profits);

ProfitReportView.printFinalProfitHeader();
ProfitReportView.printProfitByDealer(dealerProfit);
ProfitReportView.printProfitByPlayers(profits);
}
}
18 changes: 18 additions & 0 deletions src/main/java/controller/result/NonBettingResultReporter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package controller.result;

import model.judgement.DealerResult;
import model.judgement.PlayerResult;
import model.paticipant.Player;
import view.WinLossReportView;

public class NonBettingResultReporter implements ResultReporter<Player> {

@Override
public void report(PlayerResult<Player> playerResult) {
DealerResult dealerResult = playerResult.calculateDealerResult();

WinLossReportView.printFinalResultHeader();
WinLossReportView.printResultByDealer(dealerResult);
WinLossReportView.printResultByPlayers(playerResult);
}
}
9 changes: 9 additions & 0 deletions src/main/java/controller/result/ResultReporter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package controller.result;

import model.judgement.PlayerResult;
import model.paticipant.Player;

public interface ResultReporter<T extends Player> {

void report(PlayerResult<T> playerResult);
}
Loading