Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
87b8cad
refactor(Hand): ๋ฉ”์„œ๋“œ๋ช… ๋ณ€๊ฒฝ ๋ฐ ๋ฉ”์„œ๋“œ ์ถ”์ถœ
khcho96 Mar 12, 2026
1b1c966
refactor(HitOrStand): domain.game ํŒจํ‚ค์ง€๋กœ ์ด๋™
khcho96 Mar 12, 2026
a7aa54b
refactor(Result): domain.game ํŒจํ‚ค์ง€๋กœ ์ด๋™
khcho96 Mar 12, 2026
a6539dc
refactor(Hand): REDUCED_SCORE_FROM_ACE ์ƒ์ˆ˜ ์ฒ˜๋ฆฌ
khcho96 Mar 13, 2026
caba72c
refactor(BlackjackGameManager): Dealer๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ  Participants์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœโ€ฆ
khcho96 Mar 13, 2026
7035b92
refactor(BlackjackGameManager): generatePlayerDtoList() ๋ฉ”์„œ๋“œ ๋‚ด์šฉ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๊ตฌํ˜„
khcho96 Mar 13, 2026
640c510
refactor(BlackjackGameManager): getBlackjackStatistics() ๋ฉ”์„œ๋“œ ์ˆ˜์ •
khcho96 Mar 13, 2026
28f5d22
test(BlackjackGameManager): calculatePlayerResults() ๋ฉ”์„œ๋“œ ์‚ญ์ œ๋กœ ์ธํ•œ ํ…Œ์ŠคํŠธ ์ฝ”โ€ฆ
khcho96 Mar 13, 2026
51c80be
docs(README): ๋ฐฐํŒ… ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋กœ ์ธํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ชฉ๋ก ์ถ”๊ฐ€ ์ž‘์„ฑ
khcho96 Mar 13, 2026
b78f443
feat(BlackjackController): inputBetAmounts ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 13, 2026
7f3f851
feat(BetAmount): ๋ฐฐํŒ… ๊ธˆ์•ก์„ ์ €์žฅ ๋ฐ ๊ฒ€์ฆํ•˜๋Š” BetAmount ํ‹€๋ž˜์Šค ์ƒ์„ฑ
khcho96 Mar 13, 2026
c3004ea
feat(BlackjackController): inputBetAmounts ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 13, 2026
7431a4e
feat(BlackjackGameManager): getPlayerDtoList ๋ฐ setBetAmount ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 13, 2026
7c75ff3
feat(InputView): inputBetAmount ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 13, 2026
59130bb
feat(ParticipantDto): from ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 13, 2026
eb50b41
feat(Player): setBetAmount ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 13, 2026
cd807d3
feat(DealerStatisticDto): DealerStatisticDto ํด๋ž˜์Šค ์‚ญ์ œ
khcho96 Mar 13, 2026
841c634
feat(BlackjackStatisticsDto): ํ•„๋“œ ์ˆ˜์ •
khcho96 Mar 13, 2026
fbf79e0
feat(Hand): calculateInitialBaseScore(), isBlackjack(), calculateInitโ€ฆ
khcho96 Mar 13, 2026
1b369ed
feat(Hand): getBlackjackStatistics(), calculatePlayerProfit() ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 13, 2026
6c2486f
feat(OutputView): ์ตœ์ข… ์ˆ˜์ต ์ถœ๋ ฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„
khcho96 Mar 13, 2026
91e304c
feat(Player): isBlack(), getBetAmount() ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 13, 2026
0f4bfaf
feat(PlayerStatisticDto): ํ•„๋“œ ์ˆ˜์ •
khcho96 Mar 13, 2026
3e0ec19
docs(README): ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•œ ํ•ญ๋ชฉ ์ฒดํฌ ํ‘œ์‹œ
khcho96 Mar 13, 2026
7872210
refactor(CardMachine): addRepeatDeckCount ๋ฉ”์„œ๋“œ๋ช… ๋ณ€๊ฒฝ
khcho96 Mar 13, 2026
e06ffda
refactor(Hand): ๋ฉ”์„œ๋“œ ์œ„์น˜ ๋ณ€๊ฒฝ
khcho96 Mar 13, 2026
927179b
refactor(Rank): ๋ฉ”์„œ๋“œ ์œ„์น˜ ๋ณ€๊ฒฝ
khcho96 Mar 13, 2026
0990745
refactor(BlackjackGameManager): getPlayerDtoList() ๋ฉ”์„œ๋“œ ์‚ญ์ œ
khcho96 Mar 13, 2026
83da4c2
refactor(ParticipantDto): Players๋ฅผ ์ธ์ˆ˜๋กœ ๊ฐ€์ง€๋Š” from ๋ฉ”์„œ๋“œ 1๊ฐœ ์‚ญ์ œ
khcho96 Mar 13, 2026
fc36d0f
refactor(BlackjackControllerFactory): blackjackService -> blackjackGaโ€ฆ
khcho96 Mar 13, 2026
595d088
refactor(Hand): INITIAL_CARD_COUNT ์ƒ์ˆ˜ํ™”
khcho96 Mar 13, 2026
3919a63
refactor(Result): ๋ถˆํ•„์š”ํ•œ ํ•„๋“œ ๋ฐ ๋ฉ”์„œ๋“œ ์ œ๊ฑฐ
khcho96 Mar 13, 2026
1dcc127
remove(CardTest): ํ…Œ์ŠคํŠธํ•  ๋ฉ”์„œ๋“œ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ญ์ œ
khcho96 Mar 14, 2026
653e765
remove(ParticipantTest): ํ…Œ์ŠคํŠธํ•  ๋ฉ”์„œ๋“œ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ญ์ œ
khcho96 Mar 14, 2026
2f578fe
test(BetAmountTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
edf3ee0
test(BlackjackGameManagerTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
98f6661
test(BlackjackResultDtoTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
a4ea9eb
test(BlackjackStatisticsDtoTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
f2b48ac
test(CardMachineTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
c779f8c
test(DealerTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
92b7197
test(HandTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
0583a0f
test(HitOrStandTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
519dd99
test(ParserTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
9cb7d69
test(ParticipantDtoTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
2589175
test(ParticipantsTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
7da70e2
test(PlayerNameTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
94613d9
test(PlayerStatisticDtoTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
5ca14ad
test(PlayersTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
bd95be8
test(PlayerTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 14, 2026
fcb8756
refactor(Player): isBlackjack ๋ฉ”์„œ๋“œ Participant๋กœ ์ด๋™
khcho96 Mar 14, 2026
7bb91ad
refactor(Participant): isBlackjack ๋ฉ”์„œ๋“œ Participant๋กœ ์ด๋™
khcho96 Mar 14, 2026
2544ed3
feat(Participant): ๋”œ๋Ÿฌ๊ฐ€ ๋ธ”๋ž™์žญ์ธ ๊ฒฝ์šฐ ๊ณ ๋ คํ•ด์„œ judgePlayerResult ๋ฉ”์„œ๋“œ ๋ฐ calculateโ€ฆ
khcho96 Mar 14, 2026
10b0abf
feat(Result): ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ธ”๋ž™์žญ์œผ๋กœ ์ด๊ธด๊ฒฝ์šฐ๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๊ตฌํ˜„ํ•˜๋„๋ก ๊ฐ์ฒด ์ถ”๊ฐ€
khcho96 Mar 14, 2026
f6e8e9a
refactor(Participant): getName ๋ฉ”์„œ๋“œ ์ถ”์ƒํ™”
khcho96 Mar 14, 2026
121e289
refactor(Dealer): getName ๋ฉ”์„œ๋“œ ์œ„์น˜ ๋ณ€๊ฒฝ
khcho96 Mar 14, 2026
dda1d77
refactor(Player): getName ๋ฉ”์„œ๋“œ ์œ„์น˜ ๋ณ€๊ฒฝ
khcho96 Mar 14, 2026
06892b3
refactor(BlackjackController): ๋ฒ ํŒ… ๊ธˆ์•ก์„ ๋ชจ๋‘ ์ž…๋ ฅ๋ฐ›์€ ๋’ค ํ”Œ๋ ˆ์ด์–ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœโ€ฆ
khcho96 Mar 14, 2026
d8a5c95
refactor(BlackjackGameManager): ๋ฒ ํŒ…๊ธˆ์•ก ๊ฐ์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ธ์ˆ˜๋กœ ๋ฐ›์•„ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธโ€ฆ
khcho96 Mar 14, 2026
59b8816
refactor(Participants): ๋ฒ ํŒ…๊ธˆ์•ก ๊ฐ์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ธ์ˆ˜๋กœ ๋ฐ›์•„ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ •
khcho96 Mar 14, 2026
a34b82e
refactor(Players): ๋ฒ ํŒ…๊ธˆ์•ก ๊ฐ์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ธ์ˆ˜๋กœ ๋ฐ›์•„ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ •
khcho96 Mar 14, 2026
a290e93
refactor(Player): BetAmount ๊ฐ์ฒด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ • ๋ฐ setBetAmount ๋ฉ”์„œโ€ฆ
khcho96 Mar 14, 2026
5131913
refactor(BlackjackController): PlayerName์„ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ƒ์„ฑํ•ด์„œ BlackjackGameMโ€ฆ
khcho96 Mar 14, 2026
e13c47b
refactor(BlackjackGameManager): PlayerName ๋ฆฌ์ŠคํŠธ๋ฅผ ๋„˜๊ฒจ๋ฐ›์•„ Participants๋ฅผ ์ƒ์„ฑโ€ฆ
khcho96 Mar 14, 2026
f98a848
refactor(Participants): PlayerName ๋ฆฌ์ŠคํŠธ๋ฅผ ๋„˜๊ฒจ๋ฐ›์•„ Players๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ •
khcho96 Mar 14, 2026
368f1bb
refactor(Players): PlayerName ๋ฆฌ์ŠคํŠธ๋ฅผ ๋„˜๊ฒจ๋ฐ›์•„ Player๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ •
khcho96 Mar 14, 2026
145bbc2
feat(PlayerName): Players ๊ฐ์ฒด ๋‚ด ๊ฒ€์ฆ ๊ณผ์ •์—์„œ PlayerName ์ค‘๋ณต ๊ฒ€์ฆ์‹œ ์ด๋ฆ„์œผ๋กœ ๋น„๊ต ๊ฐ€๋Šฅํ•˜๋„โ€ฆ
khcho96 Mar 14, 2026
ca54fc8
refactor(Player): PlayerName์„ ๋„˜๊ฒจ๋ฐ›์•„ ๊ฐ์ฒด ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ •
khcho96 Mar 14, 2026
276d6ff
feat(PlayerName): hashCode ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 14, 2026
214ee2d
refactor(PlayerName): isPositive๋ฅผ isNotPositive๋กœ ๋ฉ”์„œ๋“œ๋ช… ์ˆ˜์ • ๋ฐ NUMBER_FORโ€ฆ
khcho96 Mar 14, 2026
a1c6f29
refactor(Hand): calculateAceCount ๋ฉ”์„œ๋“œ ์ˆ˜์ •
khcho96 Mar 14, 2026
2757c76
refactor(OutputView): ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” printResult ๋ฉ”์„œ๋“œ ์‚ญ์ œ
khcho96 Mar 14, 2026
eee034c
refactor(BlackjackJudge): BlackjackGameManager์˜ judgePlayerResult() ๋ฉ”โ€ฆ
khcho96 Mar 15, 2026
14cfcc1
refactor(BlackjackGameManager): BlackjackJudge ํ•„๋“œ ์ถ”๊ฐ€ ๋ฐ judgePlayerResโ€ฆ
khcho96 Mar 15, 2026
afb1761
refactor(Result): BlackjackJudge์˜ calculatePlayerProfit() ๋ฉ”์„œ๋“œ ๋‚ด์šฉ์„ Resโ€ฆ
khcho96 Mar 15, 2026
0df7db2
refactor(BlackjackJudge): ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ธ”๋ž™์žญ์ด ์•„๋‹Œ ์ ์ˆ˜๋กœ ์ด๊ฒผ์„ ๊ฒฝ์šฐ WIN์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ˆ˜์ •
khcho96 Mar 15, 2026
529ca7c
refactor(BlackjackJudge): calculatePlayerProfit ๋ฉ”์„œ๋“œ ์‚ญ์ œ
khcho96 Mar 15, 2026
cd917e1
refactor(BetAmount): ์ƒ์ˆ˜ public์œผ๋กœ ๋ณ€๊ฒฝ
khcho96 Mar 15, 2026
ae02ed2
refactor(BlackjackController): ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฒ„์ŠคํŠธ์ด๋ฉด ๋”์ด์ƒ ์นด๋“œ๋ฅผ ๋ฝ‘์ง€ ๋ชปํ•˜๋„๋ก ์ˆ˜์ • ๊ตฌํ˜„
khcho96 Mar 15, 2026
1bb8255
refactor(BlackjackGameManager): isHit, isStand ๋ฉ”์„œ๋“œ ์‚ญ์ œ ๋ฐ playerIsBust โ€ฆ
khcho96 Mar 15, 2026
4c28283
refactor(Participants): playerIsBust ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 15, 2026
3da7d09
refactor(Players): playerIsBust ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
khcho96 Mar 15, 2026
7650a5a
refactor(Players): ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์นด๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ๋ฝ‘์•˜์„ ๋•Œ ๋ฒ„์ŠคํŠธ์ด๋ฉด ์นด๋“œ๋ฅผ ๋ฝ‘์„์ง€ ๋ฌผ์–ด๋ณด์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ฐจ๋ก€๋กœ ๋„˜โ€ฆ
khcho96 Mar 15, 2026
38c446b
refactor(BlackjackController): drawCardOnPlayer ๋ฉ”์„œ๋“œ hitOrStand ํŒŒ๋ผ๋ฏธํ„ฐ ์ œ๊ฑฐ
khcho96 Mar 15, 2026
ecaf295
refactor(Card): equals ๋ฉ”์„œ๋“œ ์‚ญ์ œ
khcho96 Mar 15, 2026
8549a01
refactor(BlackjackJudge): ์ŠนํŒจ ํŒ๋‹จ ๋ฉ”์„œ๋“œ ์ˆ˜์ •
khcho96 Mar 15, 2026
22d2ee1
fix(Result): ์‹ค์ˆ˜ ์ฒ˜๋ฆฌ ๋ฒ„๊ทธ ์ˆ˜์ •
khcho96 Mar 15, 2026
09a2d3d
refactor(BetAmount): BlackjackException ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •
khcho96 Mar 15, 2026
522fad1
test(HandTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 15, 2026
f712103
test(BlackjackGameManagerTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 15, 2026
3dc17b8
test(BlackjackJudgeTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 15, 2026
2578a5f
remove(HitOrStandTest): constant ํŒจํ‚ค์ง€ ๋ฐ ํ•˜์œ„ ํด๋ž˜์Šค HitOrStandTest ์‚ญ์ œ
khcho96 Mar 15, 2026
e244b53
test(ResultTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 15, 2026
f961d98
refactor(PlayerName): equals ๋ฐ hashCode ๋ฉ”์„œ๋“œ ์‚ญ์ œ
khcho96 Mar 15, 2026
db6bbc3
test(ParticipantsTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 15, 2026
f9c39d1
test(PlayersTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 15, 2026
b252768
remove(PlayerTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ถˆํ•„์š”ํ•˜๋ฏ€๋กœ ์‚ญ์ œ
khcho96 Mar 15, 2026
133cb90
test(ParticipantDtoTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 Mar 15, 2026
55e5d33
test(PlayerStatisticDtoTest): ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
khcho96 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
38 changes: 24 additions & 14 deletions README.md
Copy link

Choose a reason for hiding this comment

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

์˜๋„๋œ ์ค‘๋ณต์— ๋Œ€ํ•œ ์งˆ๋ฌธ
์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋ผ ํ•˜์ง€๋งŒ ๋–„๋กœ๋Š” ์˜๋„๋œ ์ค‘๋ณต์„ ๋งŒ๋“ค๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜„

์˜๋„๋œ ์ค‘๋ณต์„ ๋งŒ๋“ค๊ธฐ๋„ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ถฉ๊ฒฉ์ ์ด๋„ค์š” ๐Ÿ˜ฎ
"์ค‘๋ณต"์— ๋Œ€ํ•ด 100% ๋ถ€์ •์ ์œผ๋กœ ๋ฐ”๋ผ๋ดค์—ˆ๋Š”๋ฐ, ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธ์ง€ํ•˜๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ์ƒ๊ฐํ•ด๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค!
ํ•œ ๊ฐ€์ง€ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋Š”๋ฐ, ์ฐฐ๋ฆฌ๋Š” constant ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ํŽธ์ธ๊ฐ€์š”?
๋งŒ์•ฝ ์‚ฌ์šฉํ•˜์‹ ๋‹ค๋ฉด ์–ด๋–ค ๊ฒฝ์šฐ์—, ์–ด๋–ค ํด๋ž˜์Šค๋ฅผ ๊ณตํ†ต์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” constant ํŒจํ‚ค์ง€๋กœ ๋ถ„๋ฆฌํ•˜์‹œ๋‚˜์š”?

constant ๋ผ๋Š” ํŒจํ‚ค์ง€๋Š” ๋ณดํ†ต์€ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š”๊ฒƒ์„ ์ง€ํ–ฅํ•ด์š”!

์ƒ์ˆ˜๋ผ๋Š” ๊ฐ’๋“ค์€ ๋Œ€๋ถ€๋ถ„ ํŠน์ • ํด๋ž˜์Šค์— ์œ„์น˜ํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”~
์ƒ์ˆ˜๋ฅผ ๋ชจ์•„๋‘” ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฆฌํ•ด์•ผํ•œ๋‹คํ•ด๋„ constant ๋ผ๋Š” ํŒจํ‚ค์ง€๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€ ์•ˆ์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค

๊ณตํ†ต์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ชจ์•„๋‘๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ
๊ทธ๊ณณ์— ํด๋ž˜์Šค๋ฅผ ๋†”๋‘๋Š”๊ฒŒ ๋งž๋Š”์ง€๋Š” ๊ฒ€์ฆ์„ ์ž˜ ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š” :)
๊ทธ๋งŒํผ ๊ณต์šฉ ์ด๋ผ๋Š” ๊ณต๊ฐ„์€ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์˜์กดํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์—ด์–ด๋‘๋Š”๊ฒƒ์ด๋‹ˆ๊นŒ์š”

๋งŽ์€๊ณณ์—์„œ ๊ณต์šฉ ํŒจํ‚ค์ง€ ๋ฅผ ์˜์กดํ•˜๋Š” ๊ฒƒ์˜ ๋‹จ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

Copy link
Author

Choose a reason for hiding this comment

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

๋ง์”€ํ•ด์ฃผ์‹ ๋Œ€๋กœ ๊ณต์šฉ ํŒจํ‚ค์ง€๋ฅผ ๋งŽ์€ ๊ณณ์—์„œ ์˜์กดํ•˜๋ฉด ๋ณ€๊ฒฝ ๋ฒ”์œ„๊ฐ€ ๋„“์–ด์ง€๊ณ  ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„์ง€๊ฒ ๋„ค์š”. ๋˜ํ•œ ๊ฐ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•  ์ฑ…์ž„๊นŒ์ง€ ๊ณต์šฉ์œผ๋กœ ๋น ์งˆ ์œ„ํ—˜์ด ์žˆ์–ด์„œ, ์ฑ…์ž„์˜ ๊ฒฝ๊ณ„๊ฐ€ ํ๋ ค์ง€๊ณ  ์‘์ง‘๋„๊ฐ€ ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค.

๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๋„ ์žˆ์ง€๋งŒ ์ฑ…์ž„์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์ •ํ•˜๊ธฐ ์• ๋งคํ•ด์„œ "๊ณต์šฉ"์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฌถ์–ด๋†“์€ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜…

Copy link

Choose a reason for hiding this comment

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

์ฑ…์ž„ ๋ถ„๋ฆฌ์— ๋Œ€ํ•œ ์งˆ๋ฌธ
BlackjackGameManager ๊ฐ€ ์ŠนํŒจ์— ๋Œ€ํ•œ ํŒ๋‹จ์„ ํ•˜๋Š”๊ฒƒ์€ ์ฑ…์ž„์ด ๊ณผํ• ๊ฒƒ ๊ฐ™๋„ค์š” ๐Ÿค” ์ŠนํŒจ ํŒ๋‹จ์„ ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ถ„๋ฆฌํ•ด๋ณด๋Š”๊ฒƒ๋„ ์ข‹๊ฒ ์–ด์š”~

์ œ๊ฐ€ ์ƒ๊ฐํ–ˆ์„ ๋•Œ ํ˜„์žฌ ์Šน๋ฌดํŒจ ํŒ๋‹จ์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋Š” BlackjackGameManager ํด๋ž˜์Šค์˜ getBlackjackStatistics ๋ฉ”์„œ๋“œ ๋กœ์ง์ธ๋ฐ, ํŠนํžˆ ํ•ด๋‹น ๋ฉ”์„œ๋“œ ๋‚ด ์•„๋ž˜ 3์ค„์˜ ๋กœ์ง์ธ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

Result result = judgePlayerResult(participants.dealer(), player);
int playerProfit = calculatePlayerProfit(player, result);
dealerProfit += playerProfit * -1;

์ด ๋กœ์ง์„ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด(A๋ผ๊ณ  ์ง€์นญํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค)๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ ๋‹ค๋ฉด A๋Š” judgePlayerResult ๋ฉ”์„œ๋“œ์™€ calculatePlayerProfit ๋ฉ”์„œ๋“œ๋ฅผ ํด๋ž˜์Šค ๋‚ด์—์„œ ๊ฐ€์งˆํ…๋ฐ, ์ด๋•Œ ๋ณด์‹œ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฉ”์„œ๋“œ์˜ ์ธ์ˆ˜๋กœ Dealer์™€ Player๊ฐ€ ๋“ค์–ด๊ฐ€๊ธฐ๋•Œ๋ฌธ์— A๊ฐ€ Dealer์™€ Player์—๊ฒŒ ์˜์กดํ•˜๊ฒŒ ๋˜๊ณ , ๊ฒฐํ•ฉ๋„๊ฐ€ ์ปค์ง€๊ฒŒ ๋˜์ง€ ์•Š์„๊นŒ๋ผ๋Š” ๋ถ€๋ถ„์ด ์—ผ๋ ค๋ฉ๋‹ˆ๋‹ค. ๊ฒฐํ•ฉ๋„๊ฐ€ ์ปค์ง€๋ฉด ์ˆ˜์ •๋ฒ”์œ„๊ฐ€ ์ปค์ง€๊ฒŒ ๋˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ฐฐ๋ฆฌ์˜ ์˜๊ฒฌ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

์ŠนํŒจํŒ๋‹จ์ด ํ•„์š”ํ•˜๋‹ค -> ์ŠนํŒจ ํŒ๋‹จ์—๋Š” ๋”œ๋Ÿฌ์™€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค -> ์ŠนํŒจ๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ๋”œ๋Ÿฌ์™€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์˜์กดํ•˜๋Š”๊ฒƒ์€ ์ž์—ฐ์Šค๋Ÿฝ๋‹ค
์ด๋Ÿฐ ํ๋ฆ„์œผ๋กœ ์ƒ๊ฐํ–ˆ์–ด์š”!
ํ•„์š”ํ•œ ๊ฒƒ์„ ์˜์กดํ•˜๋Š”๊ฒƒ์ด๋ผ ์–ด์ƒ‰ํ•˜์ง€ ์•Š๊ณ , ํ•จ๊ป˜ ๋ณ€ํ™”ํ•˜๋Š”๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฝ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์–ด์š” ๐Ÿค”
์–ธ์ œ ์˜์กด์„ ํ•ด์•ผํ•˜๋Š”๊ฐ€? ๋ผ๋Š” ๊ธฐ์ค€์„ ๊ณ ๋ฏผํ•ด๋ณผ ์ˆ˜ ์žˆ๊ณ˜๋„ค์š”!

Copy link
Author

Choose a reason for hiding this comment

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

์˜์กดํ•˜๋Š” ๊ฑธ ์ตœ๋Œ€ํ•œ ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๋ช…ํ™•ํ•œ ์ด์œ ๊ฐ€ ์žˆ์œผ๋ฉด ๊ดœ์ฐฎ์€ ๊ฒƒ์ด์˜€๊ตฐ์š”! ๐Ÿ˜ฎ

์–ธ์ œ ์˜์กดํ•ด์•ผํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•œ ๊ธฐ์ค€๊ณผ ๊ทธ ๊ธฐ์ค€์— ๋Œ€ํ•œ ์ง€๊ธˆ ์ƒํ™ฉ์—์„œ์˜ ์ ์šฉ์„ ์•„๋ž˜์ฒ˜๋Ÿผ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค!
์ด ๊ธฐ์ค€์— ๋Œ€ํ•œ ์ฐฐ๋ฆฌ์˜ ์˜๊ฒฌ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค:)

1. ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ •๋ง ๊ทธ ๊ฐ์ฒด๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š”๊ฐ€

์ŠนํŒจ ํŒ๋‹จ์˜ ์ฑ…์ž„์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋ผ๋ฉด ํ”Œ๋ ˆ์ด์–ด์™€ ๋”œ๋Ÿฌ์˜ ์ƒํƒœ๋ฅผ ์•Œ์•„์•ผ ์ŠนํŒจ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ž์—ฐ์Šค๋Ÿฌ์šด ์˜์กด์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

2. ์˜์กดํ•˜๋Š” ๊ฐ์ฒด์˜ ๊ตฌ์ฒด์ ์ธ ๋‚ด๋ถ€ ์‚ฌ์ •๊นŒ์ง€ ๋ชฐ๋ผ๋„ ๋˜๋Š”๊ฐ€

ํ•„์š”ํ•œ ์˜์กด์€ ์˜์กดํ•˜๋Š” ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ •๋„์ด๊ณ , ๋ถˆํ•„์š”ํ•œ ์˜์กด์€ ์˜์กดํ•˜๋Š” ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๊บผ๋‚ด์„œ ์ด๋ฆฌ์ €๋ฆฌ ์กฐ์ž‘ํ•˜๋Š” ์ˆ˜์ค€์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์˜์กดํ•˜๋”๋ผ๋„ ๋‚ด๋ถ€ ๊ตฌํ˜„๋ณด๋‹ค ์—ญํ• ์— ์˜์กดํ•˜๋Š” ๊ฒƒ์ด ๋” ๋ฐ”๋žŒ์งํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ A๋Š” Dealer์™€ Player์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์˜์กดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ŠนํŒจ ํŒ๋‹จ๊ณผ ์ˆ˜์ต ๊ณ„์‚ฐ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ป๊ธฐ ์œ„ํ•ด ์˜์กดํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

3. ์˜์กด ๋•Œ๋ฌธ์— ์ฑ…์ž„์ด ์„ž์ด์ง€ ์•Š๋Š”๊ฐ€

์˜์กด์ด ์ƒ๊ธฐ๋ฉด์„œ ์›๋ž˜ ๋งก์ง€ ์•Š์•„๋„ ๋  ํŒ๋‹จ, ๊ณ„์‚ฐ, ์ถœ๋ ฅ, ์ €์žฅ ์ฑ…์ž„๊นŒ์ง€ ํ•จ๊ป˜ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค๋ฉด ๊ทธ๊ฑด ๊ฒฝ๊ณ„๊ฐ€ ํ๋ ค์ง„๋‹ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์˜์กดํ•˜๋ฉด ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ง€๊ธˆ์ฒ˜๋Ÿผ A๊ฐ€ Dealer์™€ Player๋ฅผ ์˜์กดํ•˜๋Š” ๊ฒƒ์€ ์ŠนํŒจ ํŒ๋‹จ๊ณผ ์ˆ˜์ต ๊ณ„์‚ฐ์ด๋ผ๋Š” ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ˜‘๋ ฅ์ด๋ผ ์ž์—ฐ์Šค๋Ÿฝ๋‹ค๊ณ  ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

Copy link

Choose a reason for hiding this comment

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

๊ธฐ์ค€์ด ๋ช…ํ™•ํ•˜๋„ค์š” ๐Ÿ‘ ๐Ÿ‘ ๐Ÿ‘
์ „์ฒด์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค!

Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,20 @@
pobi,jason
```

โœ…๏ธ ์นด๋“œ ์ˆ˜๋ น ์—ฌ๋ถ€ ์ž…๋ ฅ ๋ทฐ
```text
pobi์˜ ๋ฐฐํŒ… ๊ธˆ์•ก์€?
10000
```


---

โœ… ์นด๋“œ ์ˆ˜๋ น ์—ฌ๋ถ€ ์ž…๋ ฅ ๋ทฐ

```text
pobi๋Š” ํ•œ์žฅ์˜ ์นด๋“œ๋ฅผ ๋” ๋ฐ›๊ฒ ์Šต๋‹ˆ๊นŒ?(์˜ˆ๋Š” y, ์•„๋‹ˆ์˜ค๋Š” n)y
pobi๋Š” ํ•œ์žฅ์˜ ์นด๋“œ๋ฅผ ๋” ๋ฐ›๊ฒ ์Šต๋‹ˆ๊นŒ?(์˜ˆ๋Š” y, ์•„๋‹ˆ์˜ค๋Š” n)
y
```

# ์ถœ๋ ฅ
Expand Down Expand Up @@ -63,13 +71,13 @@ jason์นด๋“œ: 7ํด๋กœ๋ฒ„, K์ŠคํŽ˜์ด๋“œ - ๊ฒฐ๊ณผ: 17

---

โœ… ์ตœ์ข… ์ŠนํŒจ ์ถœ๋ ฅ ๋ทฐ
โœ… ์ตœ์ข… ์ˆ˜์ต ์ถœ๋ ฅ ๋ทฐ

```text
## ์ตœ์ข… ์ŠนํŒจ
๋”œ๋Ÿฌ: 1์Šน 1ํŒจ
pobi: ์Šน
jason: ํŒจ
## ์ตœ์ข… ์ˆ˜์ต
๋”œ๋Ÿฌ: 10000
pobi: 10000
jason: -20000
```

# ํ•ต์‹ฌ ๊ธฐ๋Šฅ
Expand Down Expand Up @@ -143,13 +151,15 @@ jason: ํŒจ

---

โœ… ์ตœ์ข… ์ŠนํŒจ ๊ณ„์‚ฐ ๊ธฐ๋Šฅ

- ๊ฒŒ์ž„ ์ฐธ๊ฐ€์ž์˜ ์ŠนํŒจ ์—ฌ๋ถ€๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
โœ… ์ตœ์ข… ์ˆ˜์ต ๊ณ„์‚ฐ ๊ธฐ๋Šฅ
- ๋”œ๋Ÿฌ์™€ ๊ฒŒ์ž„ ์ฐธ๊ฐ€์ž์˜ ์ตœ์ข… ์ˆ˜์ต์„ ๊ณ„์‚ฐํ•œ๋‹ค.
- ๋”œ๋Ÿฌ๊ฐ€ ๋ฒ„์ŠคํŠธ์ธ ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์˜ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.
- ๋ฒ„์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์ฐธ๊ฐ€์ž๋Š” ์Šน์ด๋‹ค.
- ๋ฒ„์ŠคํŠธ์ธ ๋ชจ๋“  ์ฐธ๊ฐ€์ž๋Š” ํŒจ๋‹ค.
- ๋ฒ„์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์ฐธ๊ฐ€์ž๋Š” ๋ฐฐํŒ…ํ•œ ๊ธˆ์•ก์„ ์ˆ˜์ต์œผ๋กœ ๊ฐ€์ ธ๊ฐ„๋‹ค.
- ๋งŒ์•ฝ ์ฐธ๊ฐ€์ž๊ฐ€ ๋ธ”๋ž™์žญ์ด๋ฉด(์ฒ˜์Œ ๋ฐ›์€ ์นด๋“œ 2์žฅ์˜ ํ•ฉ์ด 21์ด๋ฉด) ๋ฐฐํŒ…ํ•œ ๊ธˆ์•ก์˜ 1.5๋ฐฐ๋ฅผ ์ˆ˜์ต์œผ๋กœ ๊ฐ€์ ธ๊ฐ„๋‹ค.
- ๋ฒ„์ŠคํŠธ์ธ ๋ชจ๋“  ์ฐธ๊ฐ€์ž๋Š” ๋ฐฐํŒ…ํ•œ ๊ธˆ์•ก์„ ์žƒ๋Š”๋‹ค.
- ๋”œ๋Ÿฌ๊ฐ€ ๋ฒ„์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์˜ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.
- ๋”œ๋Ÿฌ์˜ ์ ์ˆ˜๋ณด๋‹ค ๋‚ฎ๊ฑฐ๋‚˜ ๋ฒ„์ŠคํŠธ์ธ ์ฐธ๊ฐ€์ž๋“ค์€ ํŒจ๋‹ค.
- ๋”œ๋Ÿฌ์˜ ์ ์ˆ˜์™€ ๊ฐ™์€ ์ฐธ๊ฐ€์ž๋“ค์€ ๋ฌด๋‹ค.
- ๋”œ๋Ÿฌ์˜ ์ ์ˆ˜๋ณด๋‹ค ๋†’์Œ ์ฐธ๊ฐ€์ž๋“ค์€ ์Šน์ด๋‹ค.
- ๋”œ๋Ÿฌ์˜ ์ ์ˆ˜๋ณด๋‹ค ๋‚ฎ๊ฑฐ๋‚˜ ๋ฒ„์ŠคํŠธ์ธ ์ฐธ๊ฐ€์ž๋“ค์€ ๋ฐฐํŒ…ํ•œ ๊ธˆ์•ก๋งŒํผ ์žƒ๋Š”๋‹ค.
- ๋”œ๋Ÿฌ์˜ ์ ์ˆ˜์™€ ๊ฐ™์€ ์ฐธ๊ฐ€์ž๋“ค์€ ์ˆ˜์ต์ด 0์ด๋‹ค.
- ๋”œ๋Ÿฌ์˜ ์ ์ˆ˜๋ณด๋‹ค ๋†’์Œ ์ฐธ๊ฐ€์ž๋“ค์€ ๋ฐฐํŒ…ํ•œ ๊ธˆ์•ก์„ ์ˆ˜์ต์œผ๋กœ ๊ฐ€์ ธ๊ฐ„๋‹ค.
- ๋งŒ์•ฝ ์ฐธ๊ฐ€์ž๊ฐ€ ๋ธ”๋ž™์žญ์ด๋ฉด(์ฒ˜์Œ ๋ฐ›์€ ์นด๋“œ 2์žฅ์˜ ํ•ฉ์ด 21์ด๋ฉด) ๋ฐฐํŒ…ํ•œ ๊ธˆ์•ก์˜ 1.5๋ฐฐ๋ฅผ ์ˆ˜์ต์œผ๋กœ ๊ฐ€์ ธ๊ฐ„๋‹ค.

18 changes: 0 additions & 18 deletions src/main/java/constant/Result.java

This file was deleted.

46 changes: 34 additions & 12 deletions src/main/java/controller/BlackjackController.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package controller;

import constant.HitOrStand;
import domain.game.BlackjackGameManager;
import domain.game.HitOrStand;
import domain.participant.BetAmount;
import domain.participant.PlayerName;
import dto.BlackjackResultDto;
import dto.BlackjackStatisticsDto;
import dto.ParticipantDto;
import java.util.ArrayList;
import java.util.List;
import domain.game.BlackjackGameManager;
import util.Parser;
import view.InputView;
import view.OutputView;
Expand Down Expand Up @@ -34,7 +37,10 @@ public void start() {
}

private void initializeGame() {
inputPlayers();
List<PlayerName> playerNames = inputPlayerNames();
List<BetAmount> betAmounts = inputBetAmounts(playerNames);
blackjackGameManager.createParticipants(playerNames, betAmounts);

blackjackGameManager.drawInitialCards();

List<ParticipantDto> playerDtoList = blackjackGameManager.generatePlayerDtoList();
Expand All @@ -44,9 +50,22 @@ private void initializeGame() {
outputView.printHandList(dealerDto, playerDtoList);
}

private void inputPlayers() {
List<String> input = Parser.parseInput(inputView.inputPlayers());
blackjackGameManager.createPlayers(input);
private List<BetAmount> inputBetAmounts(List<PlayerName> playerNames) {
List<BetAmount> betAmounts = new ArrayList<>();
for (PlayerName playerName : playerNames) {
String betAmountInput = inputView.inputBetAmount(playerName.name());
betAmounts.add(new BetAmount(betAmountInput));
}
return betAmounts;
}

private List<PlayerName> inputPlayerNames() {
List<String> names = Parser.parseInput(inputView.inputPlayers());
List<PlayerName> playerNames = new ArrayList<>();
for (String name : names) {
playerNames.add(new PlayerName(name));
}
return playerNames;
}

private void inputHitOrStandOnPlayer() {
Expand All @@ -58,20 +77,23 @@ private void inputHitOrStandOnPlayer() {

private void inputHitOrStand(String name, List<String> hand) {
HitOrStand hitOrStand = HitOrStand.from(inputView.inputHitOrStand(name));
if (blackjackGameManager.isStand(hitOrStand)) {
if (hitOrStand.isStand()) {
outputView.printlnHand(name, hand);
return;
}

drawCardOnPlayer(name, hitOrStand);
drawCardOnPlayer(name);
}

private void drawCardOnPlayer(String name, HitOrStand hitOrStand) {
while (blackjackGameManager.isHit(hitOrStand)) {
private void drawCardOnPlayer(String name) {
do {
ParticipantDto playerDto = blackjackGameManager.updatePlayer(name);
outputView.printlnHand(name, playerDto.hand());
hitOrStand = HitOrStand.from(inputView.inputHitOrStand(name));
}
} while (canDrawContinue(name));
}

private boolean canDrawContinue(String name) {
return !blackjackGameManager.playerIsBust(name) && HitOrStand.from(inputView.inputHitOrStand(name)).isHit();
}

private void printBlackjackResult() {
Expand Down
10 changes: 0 additions & 10 deletions src/main/java/domain/card/Card.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,4 @@ public int getScore() {
public boolean isAce() {
return rank.isAce();
}

@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass()) {
return false;
}
Card card = (Card) o;
return rank == card.rank && suit == card.suit;
}

}
4 changes: 2 additions & 2 deletions src/main/java/domain/card/CardMachine.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ private void setRanksAndSuits(List<Card> decks) {

private void setSuits(List<Card> decks, Rank rank) {
for (Suit suit : Suit.values()) {
addRepeatSix(decks, rank, suit);
addRepeatDeckCount(decks, rank, suit);
}
}

private void addRepeatSix(List<Card> decks, Rank rank, Suit suit) {
private void addRepeatDeckCount(List<Card> decks, Rank rank, Suit suit) {
for (int i = 0; i < DECK_COUNT; i++) {
decks.add(new Card(rank, suit));
}
Expand Down
50 changes: 38 additions & 12 deletions src/main/java/domain/card/Hand.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
public class Hand {

private static final int BLACKJACK_SCORE = 21;
private static final int REDUCED_SCORE_FROM_ACE = 10;
private static final int INITIAL_CARD_COUNT = 2;

private final List<Card> cards;

Expand All @@ -17,29 +19,49 @@ public void addCard(Card card) {
cards.add(card);
}

public int calculateScore() {
int score = cards.stream()
.map(Card::getScore)
.reduce(0, Integer::sum);
int aceCount = cards.stream()
.filter(Card::isAce)
.toList()
.size();
public int calculateTotalScore() {
int baseScore = calculateBaseScore();
int aceCount = calculateAceCount();

return calculateScoreWithBestAce(score, aceCount);
return calculateTotalScoreWithAceCalculation(baseScore, aceCount);
}

private int calculateScoreWithBestAce(int score, int aceCount) {
private int calculateInitialScore() {
int baseScore = calculateInitialBaseScore();
int aceCount = calculateAceCount();

return calculateTotalScoreWithAceCalculation(baseScore, aceCount);
}

private Integer calculateBaseScore() {
return cards.stream()
.map(Card::getScore)
.reduce(0, Integer::sum);
}

private Integer calculateInitialBaseScore() {
return cards.subList(0, INITIAL_CARD_COUNT).stream()
.map(Card::getScore)
.reduce(0, Integer::sum);
}
Comment on lines +36 to +46
Copy link

Choose a reason for hiding this comment

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

์ฝ”๋“œ์— ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„๋งŒ private ๋ฉ”์„œ๋“œ๋กœ ์ถ”์ถœํ•ด๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”

Copy link
Author

Choose a reason for hiding this comment

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

์œ„์˜ ํ”ผ๋“œ๋ฐฑ ์ ์šฉ ๊ณผ์ •์—์„œ calculateInitialBaseScore ๋ฉ”์„œ๋“œ๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!


private int calculateAceCount() {
return (int) cards.stream()
.filter(Card::isAce)
.count();
}

private int calculateTotalScoreWithAceCalculation(int score, int aceCount) {
while (score > BLACKJACK_SCORE && aceCount > 0) {
score -= 10;
score -= REDUCED_SCORE_FROM_ACE;
aceCount--;
}

return score;
}

public boolean isBust() {
return calculateScore() > BLACKJACK_SCORE;
return calculateTotalScore() > BLACKJACK_SCORE;
}

public Card getFirstCard() {
Expand All @@ -50,4 +72,8 @@ public List<Card> getCard() {
return cards.stream()
.toList();
}

public boolean isBlackjack() {
return calculateInitialScore() == BLACKJACK_SCORE;
Copy link

Choose a reason for hiding this comment

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

์‚ฌ์‹ค Blackjack ์ด๋ผ๋Š” ์ ์ˆ˜๋Š” ์กฐ๊ธˆ ํŠน์ดํ•œ ๊ทœ์น™์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
๋‹จ์ˆœ 21์ ๊ณผ Blackjack ์ด๋ผ๋Š” ์ ์ˆ˜ ์ƒํƒœ๋Š” ์†ํŒจ์˜ ์ƒํƒœ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค

๋ธ”๋ž™์žญ์€ ํŒจ๊ฐ€ 2์žฅ + 21์ ์ผ ๋•Œ ๋ฅผ ๋ธ”๋ž™์žญ์ด๋ž€ ์ƒํƒœ๋กœ ๋ณด๊ณ ์žˆ์–ด์š”~

Copy link
Author

Choose a reason for hiding this comment

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

ํ˜„์žฌ calculateInitialScore()๊ฐ€ ์ฒ˜์Œ ๋ฐ›์€ 2์žฅ์ด 21์ผ ๋•Œ๋ฅผ Blackjack์œผ๋กœ ๋ณด๊ณ  ์žˆ๋Š”๋ฐ, ๊ทธ๋ƒฅ calculateTotalScore() == BLACKJACK_SCORE์ด๋ฉด์„œ cards.size() == 2์ธ ๊ฒƒ์„ ๋ณด๋Š”๊ฒŒ ์ •ํ™•ํ•˜๊ฒ ๊ตฐ์š”!

ํ•ด๋‹น๋ถ€๋ถ„ ์œ„์™€ ๊ฐ™์ด ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค!

}
}
8 changes: 4 additions & 4 deletions src/main/java/domain/card/Rank.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ public enum Rank {
this.score = score;
}

public boolean isAce() {
return this.equals(Rank.ACE);
}

public String getRank() {
return rank;
}

public int getScore() {
return score;
}

public boolean isAce() {
return this.equals(Rank.ACE);
}
}
Loading