Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
7aef3ba
docs(readme) : 상세 μš”κ΅¬μ‚¬ν•­ μ •μ˜ 및 도메인 섀계
haechanmoon Mar 4, 2026
54dbcba
test(HandCardTest) : 손에 μžˆλŠ” μΉ΄λ“œ ν•© ν…ŒμŠ€νŠΈ
haechanmoon Mar 4, 2026
8624763
test(HandCardTest) : 손에 μžˆλŠ” μΉ΄λ“œ λ²„μŠ€νŠΈ ν…ŒμŠ€νŠΈ
haechanmoon Mar 4, 2026
2cef230
feat(Card) : 단일 μΉ΄λ“œ κ΅¬ν˜„
haechanmoon Mar 4, 2026
0e6ffe3
feat(HandCard) : 손에 μžˆλŠ” μΉ΄λ“œ κ΅¬ν˜„
haechanmoon Mar 4, 2026
753590b
test(HandCardTest) : HandCard TDD κ΅¬ν˜„ μ™„λ£Œ
haechanmoon Mar 4, 2026
7c62216
chore(HandCard) : (int) λͺ…μ‹œ μΆ”κ°€
haechanmoon Mar 4, 2026
1d483ff
chore : 파일 ꡬ쑰 μž¬μ„€μ •
haechanmoon Mar 4, 2026
da80618
chore : μ˜€νƒ€ μˆ˜μ •
haechanmoon Mar 4, 2026
127aaff
feat(Deck) : μ „μ²΄κ²Œμž„μΉ΄λ“œ(52μž₯) κ΅¬ν˜„
haechanmoon Mar 4, 2026
9b22cf9
test(DealerTest) : λ”œλŸ¬ TDD μž‘μ„±
haechanmoon Mar 5, 2026
681efe8
feat : λ”œλŸ¬ TDD λ³€κ²½ 및 κ΅¬ν˜„
haechanmoon Mar 5, 2026
5064275
feat(Gambler) : μ‚¬μš©μž 도메인 κ΅¬ν˜„
haechanmoon Mar 5, 2026
9658184
feat : view 및 μ˜ˆμ™Έμ²˜λ¦¬ κ΅¬ν˜„
haechanmoon Mar 5, 2026
4637666
test(GamblerTest) : Gambler TDD κ΅¬ν˜„
haechanmoon Mar 5, 2026
a3d7370
fix(GamblerTest) : λˆ„λ½ gambler Test μΆ”κ°€
haechanmoon Mar 5, 2026
a832282
feat(Gambler) : Gambler TDD κ΅¬ν˜„
haechanmoon Mar 5, 2026
94facb9
style : μ½”λ“œ μŠ€νƒ€μΌ μ •λ ¬
haechanmoon Mar 5, 2026
77cbf6b
test(GamblerTest) : λ”œλŸ¬ 및 μ‚¬μš©μž 승패 κ²°κ³Ό λ„μΆœ ν…ŒμŠ€νŠΈ μΆ”κ°€
haechanmoon Mar 5, 2026
e2b01f2
feat(Gamblers) : gamblers TDD 둜직 κ΅¬ν˜„
haechanmoon Mar 5, 2026
66b64b6
feat : λ¬΄μŠΉλΆ€ 둜직 μΆ”κ°€ 승패둜직 λ³€κ²½
haechanmoon Mar 5, 2026
f7400b7
feat : λΈ”λž™μž­ μŠ€νƒ€ν„° 절차 κ΅¬ν˜„
haechanmoon Mar 5, 2026
08d7412
refactor : νŒ€ κ·œμΉ™μ— 맞게 μ½”λ“œ λ¦¬νŒ©ν† λ§
haechanmoon Mar 6, 2026
48a5ff6
refactor : ν•„μš”μ—†λŠ” ν…ŒμŠ€νŠΈ 제거
haechanmoon Mar 6, 2026
b2400f3
chore : κ°„λ‹¨ν•œ 이름 λ³€κ²½
haechanmoon Mar 6, 2026
9710ffc
chore : EOF처리 λ§ˆμ§€λ§‰ 쀄 μΆ”κ°€
haechanmoon Mar 9, 2026
9862c6b
chore : 띄어쓰기 μ½”λ“œ μŠ€νƒ€μΌ 적용
haechanmoon Mar 9, 2026
05ef636
refactor(HandCard) : isAceλ₯Ό μ΄μš©ν•˜μ—¬ 직접 값을 νŒλ‹¨ν•˜λŠ”κ²Œ μ•„λ‹Œ, CardRankμ—μ„œ νŒλ‹¨ν•˜λ„λ‘ λ³€κ²½
haechanmoon Mar 9, 2026
968ab8d
refactor : κ΅¬ν˜„μ²΄λ“€μ˜ 이름 λ³€κ²½
haechanmoon Mar 9, 2026
6642920
refactor(HandCardTest) : λͺ…μ‚¬ν˜• ν•¨μˆ˜μ΄λ¦„ λ™μ‚¬ν˜•μœΌλ‘œ λ³€κ²½
haechanmoon Mar 9, 2026
bda49a8
refactor(Player) : λͺ…μ‚¬ν˜• ν•¨μˆ˜μ΄λ¦„ λ™μ‚¬ν˜•μœΌλ‘œ λ³€κ²½
haechanmoon Mar 9, 2026
c9736a6
refactor : μΈν„°νŽ˜μ΄μŠ€, κ΅¬ν˜„μ²΄μ˜ 이름 λ³€κ²½
haechanmoon Mar 9, 2026
1f8b7d7
refactor(Dealer) : ν•¨μˆ˜λͺ… λ³€κ²½
haechanmoon Mar 9, 2026
aa1061b
refactor(CardDeck) : Deck으둜 클래슀λͺ… λ³€κ²½
haechanmoon Mar 9, 2026
fa92f80
chore(BlackJack) : Info단어 μΆ”κ°€
haechanmoon Mar 9, 2026
efc4365
chore : import μΆ”κ°€
haechanmoon Mar 9, 2026
1620c41
docs(readme) : κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­ 상세화
haechanmoon Mar 9, 2026
5cce321
chore(Gamblers) : 주석 제거
haechanmoon Mar 9, 2026
4779a7c
chore : static, non-static ν–‰ μΆ”κ°€
haechanmoon Mar 9, 2026
a85e9e7
chore(Gambler) : 띄어쓰기 제거
haechanmoon Mar 9, 2026
8ced443
chore(HandCard) : returnλ¬Έ 전에 ν•œμΉΈ 띄어쓰기
haechanmoon Mar 9, 2026
a9afe86
chore(Player) : static, non-static ν–‰ μΆ”κ°€
haechanmoon Mar 9, 2026
8112c4f
chore(BlackJack) : 주석 제거 및 ν–‰ μΆ”κ°€
haechanmoon Mar 9, 2026
b4f0ab9
refactor(Card) : CardRankμ—μ„œ scoreλ₯Ό 받아와 κ΅¬ν•˜λŠ” λŒ€μ‹ , Cardμ—κ²Œ 직접 Ace인지 νŒλ³„ν•˜κΈ°
haechanmoon Mar 11, 2026
355dae3
refactor(HandCard) : μ—μ΄μŠ€ νŒλ³„μ„ 객체에 μœ„μž„ν•˜λ„λ‘ 슀트림 둜직 κ°œμ„ 
haechanmoon Mar 11, 2026
69b9c02
refactor(Card) : Cardμ—μ„œ Stringν˜•μ‹ λ°˜ν™˜ λ³€κ²½ 및 뢄리
haechanmoon Mar 11, 2026
6223f4a
refactor(Dealer) : Card와 List<Card> 자체λ₯Ό λ°˜ν™˜ν•˜λ„λ‘ λ³€κ²½
haechanmoon Mar 11, 2026
2471177
refactor : λ·°μ—μ„œ 좜λ ₯ ν˜•μ‹μ„ μ§€μ •
haechanmoon Mar 11, 2026
c43bd56
refactor: κ²œλΈ”λŸ¬ 좜λ ₯ λ‘œμ§μ„ View둜 뢄리 및 DTO 제거
haechanmoon Mar 11, 2026
edc46dd
Merge branch 'haechanmoon' of https://github.com/woowacourse/java-bla…
haechanmoon Mar 11, 2026
f1ddbaa
fix: expcetion -> exception νŒ¨ν‚€μ§€ 이름 λ³€κ²½
haechanmoon Mar 12, 2026
3a79b03
feat(ExceptionMessage): MONEY_INPUT_ERROR κ°’ μΆ”κ°€
haechanmoon Mar 12, 2026
c8ef898
fix(DealerTest): 도메인변경에 λ”°λ₯Έ testμˆ˜μ •
haechanmoon Mar 12, 2026
2c0ceb1
test(BettingMoneyTest): λ°°νŒ…μ΅œμ†ŒκΈˆμ•‘ 1000μ›μœΌλ‘œ μ„€μ •
haechanmoon Mar 12, 2026
2fa58d6
feat(BettingMoney): λ°°νŒ… κΈˆμ•‘ 객체 κ΅¬ν˜„
haechanmoon Mar 12, 2026
5c7c892
docs(readme): cycle2 초기 readme μž‘μ„±
haechanmoon Mar 12, 2026
8395e88
test(MatchResultTest): 승/패/무/λΈ”λž™μž­ μ‹œ 수읡 ν…ŒμŠ€νŠΈ μž‘μ„±
haechanmoon Mar 12, 2026
025c647
feat: Gamblersκ°€ λ² νŒ…κΈˆμ•‘μ„ κ°–κ²Œ λ³€κ²½
haechanmoon Mar 12, 2026
117fa4c
refactor(Gambler): μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” λ©”μ„œλ“œ μ‚­μ œ
haechanmoon Mar 13, 2026
3ecb6b2
chore: λΆˆν•„μš”ν•œ 쀄 μ‚­μ œ
haechanmoon Mar 13, 2026
a2685b0
chore: μΉ΄λ“œ λΆ€μ—¬ μˆœμ„œ λ³€κ²½
haechanmoon Mar 13, 2026
08ac63d
feat: 돈의 λ‹¨μœ„λŠ” 100으둜 μ„€μ • κ·œμΉ™ TDD κ΅¬ν˜„
haechanmoon Mar 13, 2026
64bb84d
docs(readme): 사이클2 κΈ°λŠ₯ κ΅¬ν˜„ μ™„λ£Œ
haechanmoon Mar 13, 2026
e2cd122
feat: λ°°νŒ…κΈ°λŠ₯ κΈ°λŠ₯ κ΅¬ν˜„ μ™„λ£Œ
haechanmoon Mar 13, 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
48 changes: 46 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,5 +139,49 @@

- 객체지ν–₯의 5원칙
- SOLID
- stream, recordκ°€ λ­”μ§€.
- exception

---

## λ‘λ²ˆμ§Έ 사이클

#### λ―Έμ…˜ 쀑 기둝

- κΈ°λŠ₯ μΆ”κ°€λ‘œ 인해 μˆ˜μ •ν•œ μœ„μΉ˜ 개수
- main(9개) test(4개)

- 사이클1 λ•Œλ³΄λ‹€ μˆ˜μ • λ²”μœ„κ°€ μ€„μ—ˆλŠ”κ°€/λŠ˜μ—ˆλŠ”κ°€
- μˆ˜μ • λ²”μœ„κ°€ μ€€ 것 κ°™μŠ΅λ‹ˆλ‹€. λ„λ©”μΈμ—μ„œ κ΄€λ¦¬ν•˜λ˜ string format듀을 viewμ—μ„œ 관리할 수 μžˆλ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.
- 각 도메인듀이 ν•΄μ•Όν•  μ±…μž„λ“€μ„ 잘 λΆ„λ°°ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€.

- κ·œμΉ™ 적용으둜 λ³€κ²½ν•œ μ½”λ“œ 1κ³³
- 이것은 생각이 μ’€ ν•„μš”ν•©λ‹ˆλ‹€.

- ν…ŒμŠ€νŠΈκ°€ 섀계λ₯Ό λ„μš΄ μˆœκ°„ 1회
- κΈ°λŠ₯을 λ³€κ²½ν•˜λ©΄μ„œ 처음 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μƒμ„±ν•œ 곳은 BettingMoneyTestμž…λ‹ˆλ‹€.
- λ‹Ήμž₯ 뭐뢀터 ν•΄μ•Όν•  μ§€ 섀계가 막막할 λ•Œ 1000μ΄ν•˜μ˜ 숫자λ₯Ό μž…λ ₯ν•΄μ„  μ•ˆλœλ‹€λŠ” κ·œμΉ™μ‹ μ„Έμ›Œ μ μš©ν•˜μ˜€λ”λ‹ˆ μˆ˜μ›”ν•˜κ²Œ 섀계λ₯Ό ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

### λ² νŒ… κΈ°λŠ₯ μΆ”κ°€ μ‹œ κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­

- κ²œλΈ”λŸ¬λ“€μ€ λ² νŒ…μ„ ν•  수 μžˆλ‹€.
- λ”œλŸ¬μ™€ 견주어 승리 μ‹œ λ°°νŒ…κΈˆμ•‘μ˜ 1λ°° 이닀.
- λΈ”λž™μž­μœΌλ‘œ 승리 μ‹œ λ°°νŒ…κΈˆμ•‘μ˜ 1.5λ°° 이닀.
- λ²„μŠ€νŠΈλ‚˜ 패배 μ‹œ λ°°νŒ…κΈˆμ•‘μ˜ -1λ°° 이닀.
- λ¬΄μŠΉλΆ€ μ‹œ μˆ˜μ΅μ€ 0이 λœλ‹€.
- μ΅œμ†Œ λ°°νŒ… κΈˆμ•‘μ€ 1000 이닀.
- μ†ν•΄λŠ” -둜 ν‘œμ‹œν•œλ‹€. ex) -10000
- λ”œλŸ¬μ˜ μˆ˜μ΅μ€ **-(λͺ¨λ“  κ²œλΈ”λŸ¬λ“€μ˜ 총 수읡)** 이닀.

### μΆ”κ°€ 도메인

- **BettingMoney**
- [x] μ‚¬μš©μžκ°€ 0μ΄λ‚˜ 음수λ₯Ό μž…λ ₯ν•˜λ©΄ [ERROR] λ©”μ„Έμ§€λ₯Ό 보낸닀.
- [x] λ‹¨μœ„λŠ” 1000λ‹¨μœ„λ‘œ ν•œλ‹€.

- **MatchResult**
- [x] 승/패/무 에 따라 수읡λ₯ μ΄ μ •ν•΄μ§„λ‹€

- **Gambler**
- [x] μžμ‹ μ˜ λ°°νŒ… κΈˆμ•‘μ„ κ°€μ§„λ‹€.
- [x] μžμ‹ μ˜ 수읡 κ΅¬ν•œλ‹€.


25 changes: 20 additions & 5 deletions src/main/java/BlackJack.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import domain.BettingMoney;
import domain.deck.Deck;
import domain.deck.StandardDeck;
import domain.player.Dealer;
import domain.player.Gambler;
import domain.player.Gamblers;
import java.util.ArrayList;
import java.util.List;
import parser.AnswerParser;
import parser.PlayerNameParser;
Expand All @@ -20,7 +22,7 @@ public BlackJack() {

public void start() {
Dealer dealer = new Dealer();
Gamblers gamblers = new Gamblers(getPlayerNames());
Gamblers gamblers = new Gamblers(createGambler());

initialDeal(dealer, gamblers);
printInitialDealInfo(dealer, gamblers);
Expand All @@ -36,6 +38,17 @@ private List<String> getPlayerNames() {
return PlayerNameParser.splitNames(InputView.readLine());
}

private List<Gambler> createGambler() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GamblersκΉŒμ§€ λ§Œλ“€μ–΄λ„ 쒋을 것 κ°™μ•„μš”!

List<Gambler> gamblers = new ArrayList<>();
List<String> names = getPlayerNames();
for (String name : names) {
OutputView.requestBettingMoney(name);
int money = Integer.parseInt(InputView.readLine());
gamblers.add(new Gambler(name, new BettingMoney(money)));
}
return gamblers;
}

private void initialDeal(Dealer dealer, Gamblers gamblers) {
for (int i = 0; i < INITIAL_CARD_COUNT; i++) {
dealer.deal(deck);
Expand All @@ -46,33 +59,34 @@ private void initialDeal(Dealer dealer, Gamblers gamblers) {
private void printInitialDealInfo(Dealer dealer, Gamblers gamblers) {
OutputView.printInitMessage(gamblers.getNames());
OutputView.printDealerFirstCard(dealer.getFirstCard());

for (Gambler gambler : gamblers.getGamblers()) {
OutputView.printPlayerCards(gambler);
}
OutputView.addNewLine();
}

private void gamblersTurn(Gamblers gamblers) {
for (Gambler gambler : gamblers.getGamblers()) {
gamblerTurn(gambler);
}
OutputView.addNewLine();
}

private void gamblerTurn(Gambler gambler) {
while (true) {
OutputView.askHit(gambler.getName());
boolean answer = AnswerParser.parse(InputView.readLine());
if (!answer) {
OutputView.printPlayerCards(gambler);
break;
}

gambler.deal(deck);

OutputView.printPlayerCards(gambler);
if (gambler.isBust()) {
OutputView.printPlayerBust(gambler.getName());
break;
}
OutputView.printPlayerCards(gambler);
}
}

Expand All @@ -97,6 +111,7 @@ private void printFinalPlayerInfo(Dealer dealer, Gamblers gamblers) {

private void printFinalResult(Dealer dealer, Gamblers gamblers) {
OutputView.printFinalResultHeader();
OutputView.printResult(gamblers.getResult(dealer));
int dealerFinalIncome = gamblers.dealerFinalIncome(dealer);
OutputView.printResult(gamblers.getResult(dealer), dealerFinalIncome);
}
}
30 changes: 30 additions & 0 deletions src/main/java/domain/BettingMoney.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package domain;

import exception.BlackjackException;
import exception.ExceptionMessage;

public class BettingMoney {
private final int money;
Comment on lines +6 to +7
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BettingMoneyλ₯Ό μ›μ‹œκ°’ 포μž₯ν–ˆκ΅°μš” πŸ‘

BettingMoneyκ°€ VO 되렀면 μ–΄λ–€ 쑰건이 ν•„μš”ν• κΉŒμš”?


public BettingMoney(int money) {
validateMoney(money);
validateMoneyUnit(money);
this.money = money;
}

private void validateMoneyUnit(int money) {
if (money % 100 != 0) {
throw new BlackjackException(ExceptionMessage.MONEY_UNIT_ERROR);
}
}

private void validateMoney(int money) {
if (money < 1000) {
throw new BlackjackException(ExceptionMessage.MONEY_INPUT_ERROR);
}
}

public int getMoney() {
return this.money;
}
}
15 changes: 11 additions & 4 deletions src/main/java/domain/MatchResult.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
package domain;

public enum MatchResult {
WIN("승"),
LOSE("패"),
DRAW("무");
BLACKJACK("λΈ”λž™μž­", 1.5),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLACKJACK으둜 μ΄κΈ°λŠ” κ²½μš°κ°€ μ—†μ–΄μš”~

WIN("승", 1.0),
LOSE("패", -1.0),
DRAW("무", 0.0);

private final String name;
private final double ratio;

MatchResult(String name) {
MatchResult(String name, double ratio) {
this.name = name;
this.ratio = ratio;
}

public String getName() {
return name;
}

public int calculateIncome(BettingMoney bettingMoney) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

μ μ ˆν•œ λ©”μ†Œλ“œλ„€μš”! πŸ‘

return (int) (this.ratio * bettingMoney.getMoney());
}
}
4 changes: 2 additions & 2 deletions src/main/java/domain/deck/StandardDeck.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import domain.card.Card;
import domain.card.CardRank;
import domain.card.CardSuit;
import expcetion.BlackjackException;
import expcetion.ExceptionMessage;
import exception.BlackjackException;
import exception.ExceptionMessage;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
Expand Down
20 changes: 11 additions & 9 deletions src/main/java/domain/player/Gambler.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package domain.player;

import domain.BettingMoney;
import domain.MatchResult;
import domain.card.Card;
import expcetion.BlackjackException;
import expcetion.ExceptionMessage;
import exception.BlackjackException;
import exception.ExceptionMessage;
import java.util.List;

public class Gambler extends Player {
Expand All @@ -13,14 +14,15 @@ public class Gambler extends Player {
private static final String RESULT_FORMAT = "%s:%s";

private final String name;
private final BettingMoney bettingMoney;

public Gambler(String name) {
public Gambler(String name, BettingMoney bettingMoney) {
super();
this.bettingMoney = bettingMoney;
validate(name);
this.name = name;
}


private void validate(String name) {
validateContainsNumber(name);
validateLength(name);
Expand Down Expand Up @@ -51,18 +53,18 @@ public MatchResult getResult(Dealer dealer) {
return MatchResult.DRAW;
}

public int calculateFinalIncome(Dealer dealer) {
MatchResult matchResult = getResult(dealer);
return matchResult.calculateIncome(this.bettingMoney);
}

private int normalize(int score) {
if (score > BLACKJACK_MAX_LIMIT) {
return 0;
}
return score;
}


public String showResult(MatchResult result) {
return String.format(RESULT_FORMAT, name, result.getName());
}

public String getName() {
return name;
}
Expand Down
57 changes: 28 additions & 29 deletions src/main/java/domain/player/Gamblers.java
Original file line number Diff line number Diff line change
@@ -1,35 +1,33 @@
package domain.player;

import domain.MatchResult;
import domain.deck.Deck;
import dto.BlackjackResult;
import expcetion.BlackjackException;
import expcetion.ExceptionMessage;
import java.util.ArrayList;
import exception.BlackjackException;
import exception.ExceptionMessage;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Gamblers {
private final List<Gambler> gamblers;

public Gamblers(List<String> names) {
validateNonDuplicate(names);
gamblers = new ArrayList<>();
init(names);
public Gamblers(List<Gambler> gamblers) {
validateNonDuplicateNames(gamblers);
this.gamblers = gamblers;
}

private void validateNonDuplicate(List<String> names) {
Set<String> namesSet = new HashSet<>(names);
if (namesSet.size() != names.size()) {
private void validateNonDuplicateNames(List<Gambler> gamblers) {
List<String> names = gamblers.stream()
.map(Gambler::getName)
.toList();

Set<String> targetNames = new HashSet<>(names);
if (targetNames.size() != names.size()) {
throw new BlackjackException(ExceptionMessage.INPUT_ERROR);
}
}

private void init(List<String> names) {
names.stream().map(Gambler::new).forEach(gamblers::add);
}

public List<Gambler> getGamblers() {
return gamblers;
}
Expand All @@ -38,21 +36,22 @@ public void dealAll(Deck deck) {
gamblers.forEach(gambler -> gambler.deal(deck));
}

public BlackjackResult getResult(Dealer dealer) {
int winCount = 0;
int loseCount = 0;
List<String> logs = new ArrayList<>();
public Map<String, Integer> getResult(Dealer dealer) {
Map<String, Integer> gamblersResult = new LinkedHashMap<>();
for (Gambler gambler : gamblers) {
String name = gambler.getName();
int finalIncomeMoney = gambler.calculateFinalIncome(dealer);
gamblersResult.put(name, finalIncomeMoney);
}
return gamblersResult;
}

public int dealerFinalIncome(Dealer dealer) {
int dealerFinalIncome = 0;
for (Gambler gambler : gamblers) {
MatchResult result = gambler.getResult(dealer);
if (result == MatchResult.WIN) {
loseCount++;
}
if (result == MatchResult.LOSE) {
winCount++;
}
logs.add(gambler.showResult(result));
dealerFinalIncome += gambler.calculateFinalIncome(dealer);
Comment on lines +43 to +52
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gambler.calculateFinalIncome(dealer) λ₯Ό μ€‘λ³΅μœΌλ‘œ κ³„μ‚°ν•΄μ•Όν•˜λŠ” 게 λΉ„νš¨μœ¨μ μΈ 것 κ°™μ•„μš”.

Gamblersκ°€ κΌ­ μ΅œμ’… λ°°νŒ… κ²°κ³ΌκΉŒμ§€ κ³„μ‚°ν•΄μ•Όν• κΉŒμš”? getterλ₯Ό μ•ˆμ“°κΈ° μœ„ν•΄ 이런 λ©”μ†Œλ“œλ₯Ό λ§Œλ“  것 κ°™μ•„μš”.

GamblersλŠ” μ–΄λ–€ κΈ°λŠ₯κΉŒμ§€ μ œκ³΅ν•˜λŠ” 것이 μ’‹μ„κΉŒ? λ₯Ό 고민해보면 쒋을 것 κ°™μ•„μš”.

getterλŠ” μ•ˆμ»μ§€λ§Œ 였히렀 Gamblers와 Dealer의 μ˜μ‘΄μ„±μ΄ 생기고 λ°°νŒ… κ²°κ³ΌκΉŒμ§€ κ³„μ‚°ν•˜λ©΄μ„œ μ±…μž„μ΄ 더 μ»€μ‘Œμ–΄μš”.

}
return new BlackjackResult(winCount, loseCount, gamblers.size() - winCount - loseCount, logs);
return dealerFinalIncome * -1;
}

public List<String> getNames() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package expcetion;
package exception;

public class BlackjackException extends IllegalArgumentException {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package expcetion;
package exception;

public enum ExceptionMessage {
EMPTY_CARD_DECK("[ERROR] μΉ΄λ“œκ°€ λͺ¨λ‘ μ†Œμ§„λ˜μ—ˆμŠ΅λ‹ˆλ‹€."),
INPUT_ERROR("[ERROR] 잘λͺ»λœ μž…λ ₯μž…λ‹ˆλ‹€.");
INPUT_ERROR("[ERROR] 잘λͺ»λœ μž…λ ₯μž…λ‹ˆλ‹€."),
MONEY_INPUT_ERROR("[ERROR] 1000 μ΄μƒμ˜ 숫자λ₯Ό μž…λ ₯ν•΄μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€."),
MONEY_UNIT_ERROR("[ERROR] 돈의 λ‹¨μœ„λŠ” 100μž…λ‹ˆλ‹€.");

private final String message;

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/parser/AnswerParser.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package parser;

import expcetion.BlackjackException;
import expcetion.ExceptionMessage;
import exception.BlackjackException;
import exception.ExceptionMessage;

public class AnswerParser {
private AnswerParser() {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/view/InputView.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package view;

import expcetion.BlackjackException;
import expcetion.ExceptionMessage;
import exception.BlackjackException;
import exception.ExceptionMessage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
Expand All @@ -19,4 +19,4 @@ public static String readLine() {
throw new BlackjackException(ExceptionMessage.INPUT_ERROR);
}
}
}
}
Loading