From fa0faebc0d5292845dfe361ef82b87e844ba7e1c Mon Sep 17 00:00:00 2001 From: wook Date: Tue, 17 Dec 2024 00:13:39 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EA=B2=8C=EC=9E=84=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=20=EC=B0=B8=EC=97=AC=EC=9E=90=EB=93=A4=EC=97=90?= =?UTF-8?q?=EA=B2=8C=20=EC=B9=B4=EB=93=9C=202=EC=9E=A5=EC=94=A9=20?= =?UTF-8?q?=EC=A7=80=EA=B8=89=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +++--- src/test/kotlin/blackjack/BlackJackTest.kt | 35 ++++++++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 115fed189..aee84d9d2 100644 --- a/README.md +++ b/README.md @@ -67,15 +67,16 @@ jason카드: 7클로버, K스페이드 - 결과: 17 - [x] 플레이어는 카드를 추가 할 수 있다 - [x] 플레이어의 카드의 포인트를 합산 할 수 있다 - [x] 카드 드로우를 중지하면 더이상 카드를 받을 수 없다 + - [x] 쉼표로 구분된 이름 문자열을 전달하면 플레이어를 생성 할 수 있다 - 컨트롤러 - - [ ] 게임을 시작하면 게임에 참여할 사람들 입력 요청한다 - - [ ] 게임을 시작하면 무작위 전체 카드를 생성한다 - - [ ] 게임 참여자들에게 2장씩 카드를 지급한다 + - [x] 게임을 시작하면 게임에 참여할 사람들 입력 요청한다 + - [x] 게임을 시작하면 무작위 전체 카드를 생성한다 + - [x] 게임 참여자들에게 2장씩 카드를 지급한다 - [ ] 모든 참여자가 카드 추가 지급을 거절하면 게임을 종료하고 합산결과 출력 요청한다 - 승리자 - [ ] 카드들의 점수들을 비교하여 21점에 근접한 사람이 승리한다 - InputView - - [ ] 게임에 참여하는 사람을 직접 입력 받는다 + - [x] 게임에 참여하는 사람을 직접 입력 받는다 - [ ] 카드를 더 받을지 입력받는다 - OutputView - [ ] 게임 참여자들에게 처음 지급된 카드 리스트를 출력한다 diff --git a/src/test/kotlin/blackjack/BlackJackTest.kt b/src/test/kotlin/blackjack/BlackJackTest.kt index 0e456b6d9..09b0c6438 100644 --- a/src/test/kotlin/blackjack/BlackJackTest.kt +++ b/src/test/kotlin/blackjack/BlackJackTest.kt @@ -84,6 +84,41 @@ class BlackJackTest { val players = Players.create("kim,lee,hong") players.size shouldBe 3 } + + @Test + fun `게임을 시작하면 각 플레이어들은 2장씩 카드를 지급 받는다`() { + val players = Players.create("kim,lee,hong") + val gameCards = GameCards.create() + val game = BlackJackGame(players, gameCards) + game.startGame() + players.size shouldBe 3 + players.sumOf { player -> player.cardSize() } shouldBe 6 + players.forEach { + it.cardSize() shouldBe 2 + } + } +} + +class BlackJackGame( + private val players: Players, + private val gameCards: GameCards +) { + fun startGame() { + repeat(FIRST_ROUND_HAND_SIZE) { + giveOutCards() + } + } + + private fun giveOutCards() { + players.forEach { players -> + players.receiveCard(gameCards.drawCard()) + } + } + + companion object { + private const val FIRST_ROUND_HAND_SIZE = 2 + } + } object UserInput {