Skip to content

Commit 5f843a9

Browse files
committed
feat: 파일 정리
- 가독성 증진 - unused file 정리 # step2
1 parent 0a5687d commit 5f843a9

File tree

6 files changed

+62
-55
lines changed

6 files changed

+62
-55
lines changed

src/main/kotlin/blackJack/controller/BlackJackController.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package blackJack.controller
22

33
import blackJack.model.Dealer
44
import blackJack.model.Player
5+
import blackJack.model.askMoreCard
6+
import blackJack.model.checkDrawCardIsAllowedFor
57
import blackJack.view.InputView
68
import blackJack.view.OutputView
79

@@ -28,9 +30,9 @@ class BlackJackController {
2830
if (req == "n") {
2931
break
3032
}
31-
player.askMoreCard(dealer)
33+
player askMoreCard dealer
3234

33-
if (dealer.isDrawCardAllowedFor(player).not()) {
35+
if ((dealer checkDrawCardIsAllowedFor player).not()) {
3436
break
3537
}
3638
OutputView.printPlayerState(player)

src/main/kotlin/blackJack/model/Card.kt

-21
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,3 @@ data class Card(
77
val suit: Suit,
88
val rank: Rank
99
)
10-
11-
class CardDeck(val cards: List<Card>) {
12-
companion object {
13-
fun of(): CardDeck {
14-
val cards = generateAllCards()
15-
return CardDeck(cards)
16-
}
17-
18-
private fun generateAllCards(): List<Card> {
19-
return Suit.values().flatMap { suit ->
20-
generateCardsForSuit(suit)
21-
}
22-
}
23-
24-
private fun generateCardsForSuit(suit: Suit): List<Card> {
25-
return Rank.values().map { rank ->
26-
Card(suit, rank)
27-
}
28-
}
29-
}
30-
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package blackJack.model
2+
3+
import blackJack.model.enums.Rank
4+
import blackJack.model.enums.Suit
5+
6+
class CardDeck(val cards: List<Card>) {
7+
companion object {
8+
fun of(): CardDeck {
9+
val cards = generateAllCards()
10+
return CardDeck(cards)
11+
}
12+
13+
private fun generateAllCards(): List<Card> {
14+
return Suit.values().flatMap { suit ->
15+
generateCardsForSuit(suit)
16+
}
17+
}
18+
19+
private fun generateCardsForSuit(suit: Suit): List<Card> {
20+
return Rank.values().map { rank ->
21+
Card(suit, rank)
22+
}
23+
}
24+
}
25+
}

src/main/kotlin/blackJack/model/Dealer.kt

+16-15
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,10 @@ package blackJack.model
22

33
class Dealer(val name: String) {
44
private var cardDeck = CardDeck.of()
5+
val MAXIMUM_SCORE = 21
56

6-
fun startGame(players: List<Player>): List<Player> {
7-
return initializePlayerHands(players)
8-
}
9-
10-
private fun initializePlayerHands(players: List<Player>): List<Player> {
11-
players.forEach { player ->
12-
player.addCard(drawCard())
13-
player.addCard(drawCard())
14-
}
15-
16-
return players
7+
fun countCard(): Int {
8+
return cardDeck.cards.size
179
}
1810

1911
fun drawCard(): Card {
@@ -28,11 +20,20 @@ class Dealer(val name: String) {
2820
return currentCard
2921
}
3022

31-
fun isDrawCardAllowedFor(player: Player): Boolean {
32-
return player.calculateScore() < 21
23+
fun startGame(players: List<Player>): List<Player> {
24+
return initializePlayerHands(players)
3325
}
3426

35-
fun countCard(): Int {
36-
return cardDeck.cards.size
27+
private fun initializePlayerHands(players: List<Player>): List<Player> {
28+
players.forEach { player ->
29+
player requestCardToDealer drawCard()
30+
player requestCardToDealer drawCard()
31+
}
32+
33+
return players
3734
}
3835
}
36+
37+
infix fun Dealer.checkDrawCardIsAllowedFor(player: Player): Boolean {
38+
return player.calculateScore() < MAXIMUM_SCORE
39+
}

src/main/kotlin/blackJack/model/Player.kt

+8-10
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,17 @@ class Player(
44
val name: String,
55
var hand: List<Card> = listOf()
66
) {
7-
fun addCard(card: Card) {
8-
hand += card
9-
}
10-
117
fun calculateScore(): Int {
128
return hand.sumOf { it.rank.score }
139
}
10+
}
1411

15-
fun askMoreCard(dealer: Dealer) {
16-
if (dealer.isDrawCardAllowedFor(this).not()) {
17-
return
18-
}
19-
20-
addCard(dealer.drawCard())
12+
infix fun Player.askMoreCard(dealer: Dealer) {
13+
if (dealer checkDrawCardIsAllowedFor this) {
14+
this requestCardToDealer dealer.drawCard()
2115
}
2216
}
17+
18+
infix fun Player.requestCardToDealer(card: Card) {
19+
hand += card
20+
}

src/test/kotlin/blackjack/domain/PlayerSpec.kt

+9-7
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ package blackjack.domain
33
import blackJack.model.Card
44
import blackJack.model.Dealer
55
import blackJack.model.Player
6+
import blackJack.model.askMoreCard
67
import blackJack.model.enums.Rank
78
import blackJack.model.enums.Suit
9+
import blackJack.model.requestCardToDealer
810
import io.kotest.core.spec.style.BehaviorSpec
911
import io.kotest.matchers.shouldBe
1012

@@ -13,8 +15,8 @@ class PlayerSpec : BehaviorSpec({
1315
given("플레이어가 2장의 카드를 받았을 때") {
1416
val player = Player("플레이어")
1517
val dealer = Dealer("딜러")
16-
player.addCard(Card(Suit.SPADES, Rank.ACE))
17-
player.addCard(Card(Suit.CLUBS, Rank.EIGHT))
18+
player requestCardToDealer Card(Suit.SPADES, Rank.ACE)
19+
player requestCardToDealer Card(Suit.CLUBS, Rank.EIGHT)
1820

1921
`when`("플레이어가 가진 카드의 합을 구하면") {
2022
val score = player.calculateScore()
@@ -26,7 +28,7 @@ class PlayerSpec : BehaviorSpec({
2628

2729
`when`("bust 상태가 아닌 플레이어가 딜러에게 카드를 더 달라고 요구하면") {
2830
val currentCardCount = player.hand.size
29-
player.askMoreCard(dealer)
31+
player askMoreCard dealer
3032
val newCardCount = player.hand.size
3133

3234
then("플레이어는 카드를 한장 더 받는다.") {
@@ -38,13 +40,13 @@ class PlayerSpec : BehaviorSpec({
3840
given("bust 상태인 플레이어가") {
3941
val player = Player("플레이어")
4042
val dealer = Dealer("딜러")
41-
player.addCard(Card(Suit.SPADES, Rank.JACK))
42-
player.addCard(Card(Suit.SPADES, Rank.QUEEN))
43-
player.addCard(Card(Suit.CLUBS, Rank.EIGHT))
43+
player requestCardToDealer Card(Suit.SPADES, Rank.JACK)
44+
player requestCardToDealer Card(Suit.SPADES, Rank.QUEEN)
45+
player requestCardToDealer Card(Suit.CLUBS, Rank.EIGHT)
4446

4547
`when`("딜러에게 카드를 더 달라고 요구하면") {
4648
val currentCardCount = player.hand.size
47-
player.askMoreCard(dealer)
49+
player askMoreCard dealer
4850
val newCardCount = player.hand.size
4951

5052
then("플레이어는 카드를 받지 않는다.") {

0 commit comments

Comments
 (0)