[๐ ์ฌ์ดํด2 - ๋ฏธ์ (๋ธ๋์ญ ๋ฒ ํ )] ์๋ํค ๋ฏธ์ ์ ์ถํฉ๋๋ค.#1108
[๐ ์ฌ์ดํด2 - ๋ฏธ์
(๋ธ๋์ญ ๋ฒ ํ
)] ์๋ํค ๋ฏธ์
์ ์ถํฉ๋๋ค.#1108kcnsmoothie wants to merge 54 commits intowoowacourse:kcnsmoothiefrom
Conversation
feat: ๋ธ๋์ญ ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํ
Hyunta
left a comment
There was a problem hiding this comment.
์๋
ํ์ธ์ ์๋ํค,
2๋จ๊ณ ๋ฏธ์
๋ ์ ์งํํด์ฃผ์
จ๋ค์.
๋ช๊ฐ์ง ์ปค๋ฉํธ ๋จ๊ฒผ์ผ๋ ํ์ธํด๋ณด์๊ณ ๋ค์ ์์ฒญ์ฃผ์ธ์.
์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด ์์ผ์๋ฉด ์ปค๋ฉํธ๋ DM์ผ๋ก ์๋ ค์ฃผ์ธ์.
src/main/java/domain/Referee.java
Outdated
| if (playerScore == BUST_THRESHOLD) { | ||
| return Result.BLACKJACK; | ||
| } |
There was a problem hiding this comment.
๋ธ๋์ญ์ ์ฒ์ ๋ฐ์ 2์ฅ์ ์นด๋๊ฐ 21์ ์ผ ๋๋ง ํด๋นํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ํ์ฌ๋ ์ ์๊ฐ 21์ ์ด๋ฉด ๋ธ๋์ญ์ด ๋๋๋ก ๊ตฌํ๋์ด์๋ค์ ์์ ๋ถํ๋๋ฆฝ๋๋ค.
| playerList = new ArrayList<>(); | ||
| for (String name : names) { | ||
| playerList.add(new Player(name)); | ||
| playerList.add(new Player(name, betAmounts.get(names.indexOf(name)))); |
There was a problem hiding this comment.
indexOf๋ฅด ์ฐ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ์์๊น์? ์ด๋ป๊ฒ ๊ฐ์ ํ ์ ์์๊น์?
| private void printResult(Dealer dealer, Players players) { | ||
| Referee referee = new Referee(); | ||
| Map<Player, Result> results = new LinkedHashMap<>(); | ||
| for (Player player : players.getGamePlayers()) { | ||
| results.put(player, referee.judge(player.getScore(), dealer.getScore())); | ||
| } | ||
| outputView.printFinalResult(dealer, results); | ||
| } | ||
|
|
||
| private void printProfit(Dealer dealer, Players players) { | ||
| Referee referee = new Referee(); | ||
| Map<Player, Integer> profit = new LinkedHashMap<>(); | ||
| double dealerProfit = 0; | ||
| for (Player player : players.getGamePlayers()) { | ||
| Result result = referee.judge(player.getScore(), dealer.getScore()); | ||
| int playerProfit = (int) referee.calculateProfit(result, player.getBetAmount()); | ||
| dealerProfit -= playerProfit; | ||
| profit.put(player, playerProfit); | ||
| } | ||
| outputView.printFinalProfit(dealer, dealerProfit, profit); | ||
| } |
There was a problem hiding this comment.
printResult์ printProfit ๋ฉ์๋๊ฐ ๋์ผํ ๊ณ์ฐ์ ํ๊ฒ ๋๋ค์. ์ค๋ณต๋ ๋ก์ง์ ์ ๊ฑฐํด์ฃผ์ธ์
| @@ -33,6 +34,8 @@ public void run() { | |||
| playAllPlayerTurns(players, deck); | |||
| playDealerTurn(dealer, deck); | |||
| printFinalState(dealer, players); | |||
| printResult(dealer, players); | |||
| printProfit(dealer, players); | |||
| } | |||
There was a problem hiding this comment.
๊ตฌํํ๋ค๋ณด๋ Controller์ ์ฑ
์์ด ๋๋ฌด ์ปค์ง ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐ ๊ฐ์ฒด์์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๊ตฌํํด์ Controller์ ์ฑ
์์ ์ ์ ํ ์ญํ ์ ๊ฐ์ง ๊ฐ์ฒด์์ ๋๋ ์ฃผ์ธ์.
| private void printDealerResult(Participant dealer, Map<Player, Result> results) { | ||
| int dealerWin = countResult(results, Result.LOSE); | ||
| int dealerLose = countResult(results, Result.WIN); | ||
| System.out.println(dealer.getName() + ": " + dealerWin + "์น " + dealerLose + "ํจ"); | ||
| } |
There was a problem hiding this comment.
Dealer์ ์น์๋ฅผ ์ธ๋๋ฐ Player์ Lose ๋ฅผ ํตํด์ ์ญ์ผ๋ก ๊ณ์ฐํ๊ณ ์์ต๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋ฉ์๋ ์ด๋ฆ์ ํตํด์ ๊ฐ๋
์ฑ์ ๊ฐ์ ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
| private final List<Player> playerList; | ||
|
|
||
| public Players(List<String> names) { | ||
| public Players(List<String> names,List<Integer> betAmounts) { |
There was a problem hiding this comment.
์ ๋ฌํ ์ ๋ณด๋ค์ด ๋ง์์ก๋๋ฐ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ ๋ ์์ํ์ ์ List ๋ณด๋ค ๊ฐ์ฒด๋ก ์ ๋ฌํด์ฃผ๋ฉด ์ด๋จ๊น์?
| @@ -18,4 +21,9 @@ public Result judge(int playerScore, int dealerScore) { | |||
| } | |||
There was a problem hiding this comment.
judge ๋ฉ์๋์ if ๋ถ๊ธฐ๋ฌธ์ ์ข ์ฃผ์ฌ๋ณผ ์ ์์๊น์? Player์ Dealer๋ฅผ ์ ๋ฌ๋ฐ์์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋๋ก ๊ตฌํํด๋ณด๋ฉด ์ค์ผ ์ ์์ง ์์๊น์?
| @@ -24,7 +24,8 @@ public BlackjackController(InputView inputView, OutputView outputView) { | |||
|
|
|||
There was a problem hiding this comment.
๋ค์ด๊ฐ๋ฉฐ
step1์ ์งํํ๋ฉด์ ๋ฆ๊ฒ PR์ ์ฌ๋ ค ์๊ฐ์ ์ซ๊ธฐ๋ฏ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ฒ ๋์๊ณ , ๊ทธ ๊ณผ์ ์์ ์์์ ํผ๋๋ฐฑ์ ์ถฉ๋ถํ ์ํํ๊ฑฐ๋ ๊ถ๊ธํ ๋ถ๋ถ์ ๊น๊ฒ ๊ณ ๋ฏผํ์ง ๋ชปํ ์ ์ด ์์ฌ์ ์ต๋๋ค.
๋ ํํธ์ผ๋ก๋ PR์ ๋๋ฌด ๋ฆ๊ฒ ์ฌ๋ฆฌ๊ฒ ๋๋ฉด ๋ฆฌ๋ทฐ์ด ์ ์ฅ์์๋ ํผ๋๋ฐฑ์ด ์ง์ฐ๋๊ณ ๋ถํธํ ์ ์์ง ์์๊น ํ๋ ๊ณ ๋ฏผ๋ ๋ค์์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ PR์ ์ฌ๋ฆฌ๋ฉด์๋, ์ ๊ณ ๋ฏผ์ ์ถฉ๋ถํ ์ฝ๋๋ก ์คํํ๊ฑฐ๋ ๋ฐ์ํ์ง ๋ชปํ ์ํ์์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๊ด์ฐฎ์์ง ๊ณ ๋ฏผ์ด ๋์์ต๋๋ค.
๋ฆฌ๋ทฐ์ด ์ ์ฅ์์๋ ํ์ฌ์ฒ๋ผ ๊ธฐ๋ฅ์ด ๋์ํ๋ ์ํ์ ์ฝ๋๋ฅผ ๋จผ์ ๋น ๋ฅด๊ฒ ๊ณต์ ํ๊ณ , ์ดํ ์์ ๋๋ ๋ถ๋ถ์ ๋ํด ์ถ๊ฐ ํผ๋๋ฐฑ์ ํ๋ ๋ฐฉ์์ด ๋ ๊ด์ฐฎ์์ง, ์๋๋ฉด ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ์๊ฐํ ์ง์ ์ด ๋ง์ PR์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๋์์ง ๊ถ๊ธํฉ๋๋ค.
๋ฆฌ๋ทฐ์ด ์
์ฅ์์ ๋ง์๋๋ฆฌ๋ฉด ์ด์ ๋จ๊ณ์์ ๋จ๊ธด ํผ๋๋ฐฑ์ด ๋ฐ์๋์ง ์์ผ๋ฉด ๋ ๋์ผํ ํผ๋๋ฐฑ์ ๋๋ ค๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํธํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์๋ํค ์
์ฅ์์๋ ๊ทธ๋งํผ ๋ค๋ฅธ ์ฃผ์ ๋ก ์ด์ผ๊ธฐ๋ฅผ ํด๋ณผ ๊ธฐํ๊ฐ ์ค์ด๋ ๋ค๊ณ ์๊ฐํด์ ๊ฐ์ธ์ ์ผ๋ก๋ ๋ณธ์ธ์ด ์ถฉ๋ถํ ๊ณ ๋ฏผํ๋ค์ ์งํํ๋ ๊ฒ์ด ๋ง๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ธฐ๋ฅ์ด ๋์ํ๋ ์ํ๋ก ๋น ๋ฅด๊ฒ ๊ตฌํํด์ ๊ณต์ ํ๋ ๊ฒ์ ํผ์์๋ ํ ์ ์๋ ์ผ์ด์ง๋ง ์ค๊ณ์ ๋ํด์ ๊ณ ๋ฏผํ๊ณ ํ ๋ก ํ๋ ๊ณผ์ ์ ํผ์์ ๊ฐ๋ฅํ ์ง๋ผ๋ ์ค๊ณ๊ฐ ๋ฏธํกํ ์ ๋ฐ์ ์์ต๋๋ค. ์ฌ๋ฌ ๊ด์ ์์ ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๋ณด๋ ๊ฒ์ด ๋ ์ข์ ์ค๊ณ๋ฅผ ๋ง๋ค ์ ์์ผ๋๊น์. ํ์ฌ ์์ฒญ ์ฃผ์ ์ฝ๋์๋ ์ ๊ฐ ์ด์ ๋จ๊ณ์์ ๋๋ฆฐ ํผ๋๋ฐฑ๋ค์ด ์ฌ์ ํ ๋ฐ์๋์ง ์์ ๋ถ๋ถ๋ค์ด ๋ณด์
๋๋ค. ์ ๊ฐ ์ถ์ฒ๋๋ฆฌ๋ ๋ฐฉํฅ์ ์ต์ํ ๋จ๊ธด ํผ๋๋ฐฑ์ ๋ํด์๋ ๊ณ ๋ฏผ ํน์ ๋ฐ์์ ํ ๋ค์ ์์ฒญํ๋ ๊ฒ์
๋๋ค. ์ด๋์ผ ๋ ๋ง์ ๋ถ๋ถ์ ๋ํด์ ์ด์ผ๊ธฐ๋ฅผ ํด๋ณผ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
์ต์ข ์์ต์ ์ด๋ค ๋๋ฉ์ธ์ ์ํฅ์ ๋ฐ๊ณ , ๋๊ฐ ๊ฐ์ ธ์ผํ ๊น?
์ต์ข ์์ต์ Player, Dealer๊ฐ ๊ณตํต์ผ๋ก ๊ฐ์ง๋ ๊ฐ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ํ์ง๋ง, ์ต์ข ์์ต์ ์์ฑ ์์ ์ ๊ฒฐ์ ๋๋ ๊ฐ์ด ์๋๋๋ค. ๊ทธ๋์ โParticipant์์ ์ต์ข ์์ต์ ํ๋๋ก ๊ฐ์ง๊ธฐ์๋ ๋ถ์ ํฉํ์ง ์๋?โ ๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์์ ๋งํ๋ฏ **โDealer์ ์ต์ข ์์ต์ Player์ ๋ฒ ํ ๊ธ์ก๊ณผ Result์ ์ํด ๊ฒฐ์ ๋๋ ๊ฐโ**์ด๋ผ๋ ์ ์์ **โDealer๊ฐ ์ต์ข ์์ต ํ๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉด Player์ ์์กดํ๋ ๊ฒ ์๋๊น?โ**ํ๋ ๊ณ ๋ฏผ๋ ์๊ฒผ์ต๋๋ค.
ํนํ 2๋ฒ์ ๋ํ ๊ณ ๋ฏผ์ ํ๋ฉด์ ์ต์ข ์์ต์ ํ๋๋ก ๋๋ ๊ฒ์ด ์ ์ ํ์ง, ์๋๋ฉด ๊ณ์ฐ์ ํตํด ๋์ถ๋๋ ๊ฐ์ผ๋ก ๋๋ ๊ฒ์ด ๋ ๋์์ง ๊ณ ๋ฏผ์ด ๋ค์์ต๋๋ค. ์ด ๊ณผ์ ์์ ๋ถ๋ณ ๊ฐ์ฒด๋ ๋ฐฉ์ด์ ๋ณต์ฌ ๊ฐ์ ์ค๊ณ ๋ฐฉํฅ๋ ๊ณ ๋ คํด๋ณด์๋๋ฐ, ์ด๋ฌํ ์ ๊ทผ์ด ์ด ์ํฉ์์ ์ ์ ํ ๋ฐฉํฅ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
๋ํ ์ต์ข ์์ต๊ณผ ๊ด๋ จ๋ ์ฑ ์์ ์ด๋ค ๋๋ฉ์ธ์ด ๊ฐ์ง๋ ๊ฒ์ด ๋ ์์ฐ์ค๋ฌ์ด์ง์ ๋ํด์๋ ์กฐ์ธ์ ๋ฃ๊ณ ์ถ์ต๋๋ค.
์ฐ์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์์ ์ ๋ต์ ์์ต๋๋ค, ๊ทธ๋์ ์ ๋๋ก ์ ๊ฐ ๋งํ๋ ๊ฒ์ ๊ทธ๋๋ก ๋ฃ์ง ์์ผ์
์ผํฉ๋๋ค.
๋ถ๋ณ ๊ฐ์ฒด๋ ๋ฐฉ์ด์ ๋ณต์ฌ๋ ์ค๊ณ๋ฅผ ํผํผํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ์ฅ์น์
๋๋ค. ์์ ์ด ์ผ์ด๋์ง ์๋ ๋ถ๋ถ์ ๋ํด์๋ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํด์ฃผ์ธ์.
์ต์ข
์์ต์ด ์ด๋์ ์์นํด์ผ ํ๋๋ ์ฌ๋ฌ ์ด์ผ๊ธฐ๋ฅผ ๋ง๋ค์ด๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ง๊ธ์ฒ๋ผ Player๊ฐ ๊ฐ์ง๋ ๊ฒ๋ ํ์ค์ ์ผ๋ก๋ ์์ฐ์ค๋ฌ์ด ํ๋ฆ์ด๋ผ๊ณ ์๊ฐํด์. ํ์ค์์ ์์ต์ ๊ฒ์์ ์ฐธ๊ฐํ ์ฌ๋์ด ๊ฐ์ ธ๊ฐ๋๊น์. ๊ทธ๋ฐ๋ฐ ์ฝ๋ ์์ผ๋ก ๋ดค์ ๋ ์ ๋ง ํ์ํ๊ฐ๋ ๋ค๋ฅธ ๋ฌธ์ ์
๋๋ค. Player๊ฐ ์ต์ข
์์ต์ ๊ฒฐ์ ์ ํด๋๋๊ณ ๋ฐ๋๋ก ์ต์ข
์์ต์ด Player๋ฅผ ๊ฐ์ ธ์์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํด์ค๋ ๋ฉ๋๋ค. ์ ์์ ๊ฒฝ์ฐ Player๊ฐ ์ต์ข
์์ต์ ์๊ฒ๋๊ณ ํ์์ ๊ฒฝ์ฐ ์ต์ข
์์ต์ด Player๋ฅผ ์๊ฒ ๋ฉ๋๋ค. ์ ์์ผ๋ฉด ํ์ฌ๋ ํ์๋ฅผ ํํ์ ๊ฒ ๊ฐ์์. ์ด์ ๋ ๋จ์ํฉ๋๋ค ํ์ฌ Player๊ฐ ํ๋ ์ผ์ด ํจ์ฌ ๋ง๊ฑฐ๋ ์. ๊ทธ๋ฆฌ๊ณ ์ฑ
์์ ์์ํ ์ ์๋ ๋ถ๋ถ๋ค์ด ๋ ๋ง์ต๋๋ค. Player ์
์ฅ์์๋ ์ต์ข
์์ต์ ์กด์ฌ์ ๋ํด์ ๋ชฐ๋ผ๋ ๋๋๊น ์ต์ข
์์ต์ด๋ผ๋ context๋ ํ๋์ ๋ฌถ์์ผ๋ก ๋ฌถ์ด์ ๋ณ๋๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ญ ์ด๋ฌํ ์ด์ ์์ ์ ๋ Player ๊ฐ ์์ง ์๋ ๊ฒ์ด ๋ซ์ง ์์๊น ์ถ์๋ฐ, ๋ ๋ฐ๋๋๋ ์
์ฅ์ด ํ๋ ธ๋ค๊ณ ๋งํ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์์์ ๋งํ๋ ์ ์๊ฐ์ ์ ์๊ฐ์ผ ๋ฟ์ด์ง ์ ๋ต์ด ์๋๋๋ค, ๋จ์ ๋ฏธ์
์ ์งํํ๋ฉด์๋ ๋ฆฌ๋ทฐ์ด์ ๋ง์ ๋๋ฌด ๋ฏฟ์ง ๋ง์ธ์. ๋ณธ์ธ์ ์๊ฐ์ ํค์๋๊ฐ๋ณด์ธ์.๋ค.
ํจํค์ง ๊ด๋ฆฌ
domain ์์ Result, Referee ๋ฑ.. ๋ค์ํ ํด๋์ค๊ฐ ์ถ๊ฐ ๋๋ค ๋ณด๋ ํ ๋์ ๋๋ฉ์ธ์ ์ดํดํ๊ธฐ ์ด๋ ค์ด ๊ฒ ๊ฐ์ต๋๋ค. ํน์ domain ํจํค์ง ๋ด์์ ๊ฐ๋
์ฑ์ ์ํด ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๋ ์ ๋ต์ด๋ ์ปจ๋ฒค์
ํน์.. ๊ธฐ์ค์ด ์์๊น์?
์ ์๊ฐ์๋ ํ์ฌ ๊ทธ๋ ๊ฒ ๊ฐ์ฒด๊ฐ ๋ง์ง ์์ ๊ฒ ๊ฐ์์ ๋ถ๋ฆฌํ์ง ์์๋ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ง์ฝ ๊ทผ๋ฐ domain์ด ๋ ์ปค์ง๋ค๋ฉด domain ์์ ํจํค์ง๋ก ๋ถ๋ฆฌํ ์ ์์ง ์์๊น ์ถ์ต๋๋ค.
๋ค์ด๊ฐ๋ฉฐ
step1์ ์งํํ๋ฉด์ ๋ฆ๊ฒ PR์ ์ฌ๋ ค ์๊ฐ์ ์ซ๊ธฐ๋ฏ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ฒ ๋์๊ณ , ๊ทธ ๊ณผ์ ์์ ์์์ ํผ๋๋ฐฑ์ ์ถฉ๋ถํ ์ํํ๊ฑฐ๋ ๊ถ๊ธํ ๋ถ๋ถ์ ๊น๊ฒ ๊ณ ๋ฏผํ์ง ๋ชปํ ์ ์ด ์์ฌ์ ์ต๋๋ค.
๋ ํํธ์ผ๋ก๋ PR์ ๋๋ฌด ๋ฆ๊ฒ ์ฌ๋ฆฌ๊ฒ ๋๋ฉด ๋ฆฌ๋ทฐ์ด ์ ์ฅ์์๋ ํผ๋๋ฐฑ์ด ์ง์ฐ๋๊ณ ๋ถํธํ ์ ์์ง ์์๊น ํ๋ ๊ณ ๋ฏผ๋ ๋ค์์ต๋๋ค. ๊ทธ๋์ ์ด๋ฒ PR์ ์ฌ๋ฆฌ๋ฉด์๋, ์ ๊ณ ๋ฏผ์ ์ถฉ๋ถํ ์ฝ๋๋ก ์คํํ๊ฑฐ๋ ๋ฐ์ํ์ง ๋ชปํ ์ํ์์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๊ด์ฐฎ์์ง ๊ณ ๋ฏผ์ด ๋์์ต๋๋ค.
๋ฆฌ๋ทฐ์ด ์ ์ฅ์์๋ ํ์ฌ์ฒ๋ผ ๊ธฐ๋ฅ์ด ๋์ํ๋ ์ํ์ ์ฝ๋๋ฅผ ๋จผ์ ๋น ๋ฅด๊ฒ ๊ณต์ ํ๊ณ , ์ดํ ์์ ๋๋ ๋ถ๋ถ์ ๋ํด ์ถ๊ฐ ํผ๋๋ฐฑ์ ํ๋ ๋ฐฉ์์ด ๋ ๊ด์ฐฎ์์ง, ์๋๋ฉด ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ์๊ฐํ ์ง์ ์ด ๋ง์ PR์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ๋์์ง ๊ถ๊ธํฉ๋๋ค.
์ฒดํฌ ๋ฆฌ์คํธ
test๋ฅผ ์คํํ์ ๋, ๋ชจ๋ ํ ์คํธ๊ฐ ์ ์์ ์ผ๋ก ํต๊ณผํ๋์?์ด๋ค ๋ถ๋ถ์ ์ง์คํ์ฌ ๋ฆฌ๋ทฐํด์ผ ํ ๊น์?
๋ฒ ํ ์ ์ ์ํ๊ธฐ
๋ฒ ํ ๊ธ์ก์ ๋ํด ๊ณ ๋ฏผํ๋ ๊ณผ์ ์์ ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ ์ฌ๊ณ ์ ํ๋ฆ์ ๊ฑฐ์ณค์ต๋๋ค.
๋ฒ ํ ๊ธ์ก์ Participant, Player, Dealer ์ค ์ด๋ค ๋๋ฉ์ธ์ด ๊ฐ์ ธ์ผํ๋ ๊ฐ์ผ๊น?
step1์์ Participant๋ฅผ ์ถ์ ํด๋์ค๋ก ์ ์ํ๊ณ , Player์ Dealer๊ฐ ์ด๋ฅผ ์์๋ฐ๋ ๊ตฌ์กฐ๋ก ๊ตฌํํ์ต๋๋ค. ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ฑ ์์ ์๊ฐํด๋ดค์ต๋๋ค.
๊ฐ ๋ฒ ํ ๊ธ์ก์ Player๋ง ๊ฐ์ง๋ ๊ณ ์ ํ ๊ฐ์ด๊ณ , Dealer๋ Player์ ๋ฒ ํ ๊ธ์ก๊ณผ Result์ ์ํด ๊ฒฐ์ ๋๋ ๊ฐ์ด๋ผ๊ณ ํ๋จํ์ต๋๋ค. ๋ฐ๋ผ์, Player๋ง ๋ฒ ํ ๊ธ์ก ํ๋๋ฅผ ๊ฐ์ง๋๋ก ํ์ต๋๋ค.
์ต์ข ์์ต์ ์ด๋ค ๋๋ฉ์ธ์ ์ํฅ์ ๋ฐ๊ณ , ๋๊ฐ ๊ฐ์ ธ์ผํ ๊น?
์ต์ข ์์ต์ Player, Dealer๊ฐ ๊ณตํต์ผ๋ก ๊ฐ์ง๋ ๊ฐ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ํ์ง๋ง, ์ต์ข ์์ต์ ์์ฑ ์์ ์ ๊ฒฐ์ ๋๋ ๊ฐ์ด ์๋๋๋ค. ๊ทธ๋์ โParticipant์์ ์ต์ข ์์ต์ ํ๋๋ก ๊ฐ์ง๊ธฐ์๋ ๋ถ์ ํฉํ์ง ์๋?โ ๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์์ ๋งํ๋ฏ **โDealer์ ์ต์ข ์์ต์ Player์ ๋ฒ ํ ๊ธ์ก๊ณผ Result์ ์ํด ๊ฒฐ์ ๋๋ ๊ฐโ**์ด๋ผ๋ ์ ์์ **โDealer๊ฐ ์ต์ข ์์ต ํ๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉด Player์ ์์กดํ๋ ๊ฒ ์๋๊น?โ**ํ๋ ๊ณ ๋ฏผ๋ ์๊ฒผ์ต๋๋ค.
ํนํ 2๋ฒ์ ๋ํ ๊ณ ๋ฏผ์ ํ๋ฉด์ ์ต์ข ์์ต์ ํ๋๋ก ๋๋ ๊ฒ์ด ์ ์ ํ์ง, ์๋๋ฉด ๊ณ์ฐ์ ํตํด ๋์ถ๋๋ ๊ฐ์ผ๋ก ๋๋ ๊ฒ์ด ๋ ๋์์ง ๊ณ ๋ฏผ์ด ๋ค์์ต๋๋ค. ์ด ๊ณผ์ ์์ ๋ถ๋ณ ๊ฐ์ฒด๋ ๋ฐฉ์ด์ ๋ณต์ฌ ๊ฐ์ ์ค๊ณ ๋ฐฉํฅ๋ ๊ณ ๋ คํด๋ณด์๋๋ฐ, ์ด๋ฌํ ์ ๊ทผ์ด ์ด ์ํฉ์์ ์ ์ ํ ๋ฐฉํฅ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
๋ํ ์ต์ข ์์ต๊ณผ ๊ด๋ จ๋ ์ฑ ์์ ์ด๋ค ๋๋ฉ์ธ์ด ๊ฐ์ง๋ ๊ฒ์ด ๋ ์์ฐ์ค๋ฌ์ด์ง์ ๋ํด์๋ ์กฐ์ธ์ ๋ฃ๊ณ ์ถ์ต๋๋ค.
์ต์ข ์์ต ๊ณ์ฐ ๊ธฐ๋ฅ
์ ํฌ๋ ๊ธฐ์กด์ Referee ํด๋์ค๋ฅผ ํตํด Result๋ฅผ ํ๋ณํ์์ต๋๋ค. ์ต์ข ์์ต ๊ณ์ฐ ๊ธฐ๋ฅ์ Result๋ฅผ ํ๋ณํ๋ ๋ฉ์๋์์ ํจ๊ป ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ ์ ํ๋ค๊ณ ์๊ฐํ์ฌ Referee๋ฅผ ํตํด ๊ด๋ฆฌํ์ต๋๋ค.
ํจํค์ง ๊ด๋ฆฌ
domain ์์ Result, Referee ๋ฑ.. ๋ค์ํ ํด๋์ค๊ฐ ์ถ๊ฐ ๋๋ค ๋ณด๋ ํ ๋์ ๋๋ฉ์ธ์ ์ดํดํ๊ธฐ ์ด๋ ค์ด ๊ฒ ๊ฐ์ต๋๋ค. ํน์ domain ํจํค์ง ๋ด์์ ๊ฐ๋ ์ฑ์ ์ํด ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๋ ์ ๋ต์ด๋ ์ปจ๋ฒค์ ํน์.. ๊ธฐ์ค์ด ์์๊น์?