Skip to content

Commit 823396e

Browse files
committed
refactor: 재귀함수에 tailrec 키워드 설정
1 parent 7cff569 commit 823396e

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/main/kotlin/blackjack/controller/BlackjackGame.kt

+11-13
Original file line numberDiff line numberDiff line change
@@ -43,29 +43,27 @@ class BlackjackGame(
4343
return participants.map { playerTurn(it, gameTable) }
4444
}
4545

46-
private fun playerTurn(
46+
private tailrec fun playerTurn(
4747
player: Participant,
4848
gameTable: GameTable,
4949
): Participant {
50-
return if (player.canHit() && inputView.inputHit(player)) {
51-
val hitPlayer = gameTable.hit(player)
52-
resultView.printParticipantCard(participant = player, printScore = false)
53-
playerTurn(hitPlayer, gameTable)
54-
} else {
55-
player
50+
if (!player.canHit() || !inputView.inputHit(player)) {
51+
return player
5652
}
53+
val hitPlayer = gameTable.hit(player)
54+
resultView.printParticipantCard(participant = player, printScore = false)
55+
return playerTurn(hitPlayer, gameTable)
5756
}
5857

59-
private fun dealerTurn(
58+
private tailrec fun dealerTurn(
6059
dealer: Participant,
6160
gameTable: GameTable,
6261
): Participant {
63-
return if (dealer.canHit()) {
64-
resultView.printDealerHit()
65-
dealerTurn(gameTable.hit(dealer), gameTable)
66-
} else {
67-
dealer
62+
if (!dealer.canHit()) {
63+
return dealer
6864
}
65+
resultView.printDealerHit()
66+
return dealerTurn(gameTable.hit(dealer), gameTable)
6967
}
7068

7169
private fun printGameResult(participants: List<Participant>) {

0 commit comments

Comments
 (0)