-
Notifications
You must be signed in to change notification settings - Fork 550
[π μ¬μ΄ν΄2 - λ―Έμ (λΈλμ λ² ν )] 루λ λ―Έμ μ μΆν©λλ€. #1107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: seonwu-k
Are you sure you want to change the base?
Changes from all commits
4f3dfba
3bbf654
63f556a
33badfd
e3e2962
c885805
0a84a82
47dd596
6975c3f
a806680
426d150
cb34963
fddb58f
969d642
2039b00
2892a54
1a8250b
0610c26
d9861e2
c876868
e4516ed
5984dcf
86e65ea
87d0052
00142ff
7c6c131
f4ff0ab
034a4da
e28165f
50b2d81
681e322
c5be281
28b911a
fb32a23
959f02e
ef3b0a2
0776dfb
7b13d00
35ba56a
d29c5a0
096c2d5
73d806b
468fecd
26555f9
ad1fc70
4cbbeb2
b9026da
a1246bf
f4edc4a
86cf9e3
7ba0758
1eabd39
e6a31cc
ad668d0
146fa66
7dfb950
4184dbc
8833d8c
2465c5a
8784b70
d74f904
34257ce
3fd45c7
8b70907
9f3c94b
e077859
8b3d822
1a35d1b
b7e836b
b0970d3
f5f2773
75a46d8
9a53db7
a938c68
ffcd4dd
80cca09
ade62ac
8901f90
5f1ee76
e70b9c5
a9512d1
cce6a31
2390999
b08ead3
b6b65a6
0c16c99
ffce44c
0bc8aee
d3d2443
8f67685
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,66 +2,302 @@ | |
|
|
||
| λΈλμ λ―Έμ μ μ₯μ | ||
|
|
||
| ## ꡬνν κΈ°λ₯ λͺ©λ‘ | ||
| --- | ||
|
|
||
| # μ¬μ΄ν΄1 ꡬν κΈ°λ₯ | ||
|
|
||
| ## 1. μΉ΄λ λ± μμ± λ° μ ν | ||
|
|
||
| ### μΉ΄λ λ± μμ± + μ ν | ||
| - [x] 52μ₯μ μΉ΄λλ₯Ό μμ±νλ€. | ||
| - [x] μΉ΄λλ 무λ¬λ³ μ«μμμΌλ‘ μμ±λλ€. | ||
| - [x] μΉ΄λλ₯Ό μ ννλ€. | ||
| - [x] μΉ΄λλ 무λ¬λ³ μ«μ μμλ‘ μμ±νλ€. | ||
| - [x] μμ±λ μΉ΄λλ₯Ό μ ννλ€. | ||
|
|
||
| ### νλ μ΄μ΄/λλ¬ κ΄λ¦¬ | ||
| - [x] νλ μ΄μ΄λ₯Ό νλ μ΄μ΄ λͺ©λ‘μ λ±λ‘νλ€. | ||
| - [x] λλ¬λ₯Ό λ§λ λ€. | ||
| - [x] μΉ΄λλ₯Ό λλ¦°λ€. | ||
| --- | ||
|
|
||
| ### μΉ΄λ μ μ κ³μ° | ||
| - [x] J,Q,Kλ 10μΌλ‘ μ²λ¦¬νλ€. | ||
| - [x] Aceλ 1μ μΌλ‘ μ²λ¦¬νλ€. | ||
| ## 2. νλ μ΄μ΄ λ° λλ¬ κ΄λ¦¬ | ||
|
|
||
| - [x] νλ μ΄μ΄λ₯Ό μμ±νλ€. | ||
| - [x] νλ μ΄μ΄ λͺ©λ‘μ λ±λ‘νλ€. | ||
| - [x] λλ¬λ₯Ό μμ±νλ€. | ||
| - [x] νλ μ΄μ΄μ λλ¬μκ² μΉ΄λλ₯Ό λΆλ°°νλ€. | ||
|
|
||
| --- | ||
|
|
||
| ## 3. μΉ΄λ μ μ κ³μ° | ||
|
|
||
| - [x] μΉ΄λ μ«μλ₯Ό κΈ°λ³Έ μ μλ‘ μ¬μ©νλ€. | ||
| - [x] Jack, Queen, Kingμ 10μ μΌλ‘ μ²λ¦¬νλ€. | ||
| - [x] Aceλ κΈ°λ³Έμ μΌλ‘ 1μ μΌλ‘ μ²λ¦¬νλ€. | ||
| - [x] μΉ΄λ μ μλ₯Ό ν©μ°νλ€. | ||
|
|
||
| ### Ace 1/11 μ²λ¦¬ | ||
| - [x] νμ¬ ν©μ° μ μμ 10μ μ μ¬μ κ° μμΌλ©΄ 10μ μ λνλ€. | ||
| --- | ||
|
|
||
| ## 4. Ace μ μ μ²λ¦¬ (1 / 11) | ||
|
|
||
| - [x] νμ¬ μ μμμ 10μ μ μΆκ°ν΄λ 21μ λμ§ μλ κ²½μ° Aceλ₯Ό 11λ‘ κ³μ°νλ€. | ||
|
|
||
| --- | ||
|
|
||
| ## 5. λ²μ€νΈ νμ | ||
|
|
||
| ### λ²μ€νΈ νμ | ||
| - [x] 21μ μ΄ λμΌλ©΄ λ²μ€νΈ | ||
| - [x] μΉ΄λ ν©μ΄ 21μ μ΄κ³Όνλ©΄ λ²μ€νΈλ‘ νμ νλ€. | ||
|
|
||
| --- | ||
|
|
||
| ### ννΈ/μ€ν λ μ λ ₯ | ||
| - [x] λ²μ€νΈκ° μλλ©΄ ννΈ/μ€ν λλ₯Ό μ λ ₯λ°λλ€. | ||
| - [x] ννΈλ©΄ μΉ΄λλ₯Ό ν μ₯ λ λ°λλ€. | ||
| - [x] μ€ν λλ©΄ ν΄μ μ’ λ£νλ€. | ||
| ## 6. ννΈ / μ€ν λ μ§ν | ||
|
|
||
| - [x] λ²μ€νΈκ° μλ κ²½μ° ννΈ/μ€ν λ μ λ ₯μ λ°λλ€. | ||
| - [x] ννΈλ₯Ό μ ννλ©΄ μΉ΄λλ₯Ό ν μ₯ λ λ°λλ€. | ||
| - [x] μ€ν λλ₯Ό μ ννλ©΄ ν΄λΉ νλ μ΄μ΄μ ν΄μ μ’ λ£νλ€. | ||
|
|
||
| --- | ||
|
|
||
| ### μΉν¨ νμ | ||
| - [x] λλ¬μ μ μλ₯Ό λΉκ΅νλ€. | ||
| - [x] κ²°κ³Όλ₯Ό μμ±νλ€. | ||
| ## 7. μΉν¨ νμ | ||
|
|
||
| ### κ²°κ³Ό μΆλ ₯ | ||
| - [x] λλ¬μ νλ μ΄μ΄μ μ μλ₯Ό λΉκ΅νλ€. | ||
| - [x] κ²μ κ²°κ³Ό(μΉ/무/ν¨)λ₯Ό μμ±νλ€. | ||
|
|
||
| --- | ||
|
|
||
| ### TO-DO | ||
| - [x] Enum μΆλ ₯κ° λ³κ²½ | ||
| - [x] μΉν¨ μΆλ ₯κ° λ³κ²½ | ||
| - [x] domain.card.Suit μΆλ ₯κ° λ³κ²½ | ||
| ## 8. κ²°κ³Ό μΆλ ₯ | ||
|
|
||
| - [x] νλ μ΄μ΄ λ° λλ¬μ μΉ΄λμ μ μλ₯Ό μΆλ ₯νλ€. | ||
| - [x] κ²μ κ²°κ³Όλ₯Ό μΆλ ₯νλ€. | ||
|
|
||
| --- | ||
|
|
||
| # μ¬μ΄ν΄1 리ν©ν°λ§ λ° κ°μ μμ | ||
|
|
||
| ## μΆλ ₯ λ° νν κ°μ | ||
|
|
||
| - [x] Enum μΆλ ₯κ° μμ | ||
| - [x] μΉν¨ κ²°κ³Ό μΆλ ₯κ° λ³κ²½ | ||
| - [x] `domain.card.Suit` μΆλ ₯κ° λ³κ²½ | ||
| - [x] Ace, Jack, Queen, Kingμ΄ μ«μ κ°μΌλ‘ μΆλ ₯λλ λ¬Έμ μμ | ||
|
|
||
| --- | ||
|
|
||
| ## κ²μ λ‘μ§ μμ | ||
|
|
||
| - [x] λλ¬ μΉν¨ νμ μ€λ₯ μμ | ||
| - [x] λ²μ€νΈμΈλ° hit/stand μ§λ¬Έ | ||
| - [x] Ace, Jack, Queen, King μ΄λ¦μ΄ κ°(1,10)μΌλ‘ μΆλ ₯λλ λ¬Έμ | ||
| - [x] domain.game.GameManager 리ν©ν°λ§ | ||
| - [x] ν¨ν€μ§ μ 리 | ||
| - [x] drawDealerCard() λ©μλμ μλ΅κ° λ―Έμ¬μ© | ||
| - [x] GameManagerμ μ± μ μ¬λΆλ°° | ||
| - [x] Deck μ΄κΈ°ν, μ ν μ± μ μ κ±° | ||
| - [x] DTO μμ± μ± μ λΆλ¦¬ | ||
| - [x] μΉν¨ νμ μ± μ λΆλ¦¬ | ||
| - [x] GameController ꡬ쑰 μμ | ||
| - [x] λλ―Έν°μ λ²μΉ | ||
| - [x] μ€νΈλ¦Ό 체μ΄λμ μ€λ°κΏν΄μ μμ± | ||
| - [x] 체μ΄λ λ©μλ μμκΈ°λλ‘ κ΅¬μ‘° μμ | ||
| - [x] rank 1 보λ€λ μλ―Έμλ κ° (`ACE`)κ° μ΄ν΄νκΈ° μ½λ€ | ||
| - [x] μ£Όμμ΄ μ λ§ νμνμ§, μ΄λ¦μ΄λ κ΅¬μ‘°λ‘ μΆ©λΆνμ§ μμμ§ | ||
| - [x] primitive νμ wrapperλ‘ κ°μΈκΈ° | ||
| - [x] μΌκΈ 컬λ μ -> Handλ‘ μμ | ||
| - [x] νΈλ κΈ°λ₯ μΆκ°(μ€μ½μ΄ κ³μ°, μνκ° νλ¨, ACE κ³μ° λ‘μ§) λ° κΈ°μ‘΄ Calculator μ κ±° | ||
| - [x] mutableμ΄μ΄μΌ ν μ΄μ κ° μλ€λ©΄, λ°λμ finalμ λΆμΌ κ² | ||
| - [x] νλ μ΄μ΄κ° μ λ ₯λμ§ μλ κ²½μ°μ λν μμΈμ²λ¦¬ | ||
| - [x] κ·μΉ μ μ© | ||
| - [x] λ²μ€νΈ μνμμλ hit/stand μ§λ¬Έμ΄ λμ€λ λ¬Έμ μμ | ||
|
|
||
| --- | ||
|
|
||
| ## ꡬ쑰 리ν©ν°λ§ | ||
|
|
||
| - [x] `GameManager` 리ν©ν°λ§ | ||
| - [x] `GameController` ꡬ쑰 μμ | ||
| - [x] ν¨ν€μ§ ꡬ쑰 μ 리 | ||
|
|
||
| ### GameManager μ± μ μ¬λΆλ°° | ||
|
|
||
| - [x] Deck μ΄κΈ°ν λ° μ ν μ± μ μ κ±° | ||
| - [x] DTO μμ± μ± μ λΆλ¦¬ | ||
| - [x] μΉν¨ νμ μ± μ λΆλ¦¬ | ||
|
|
||
| --- | ||
|
|
||
| ## μ½λ μ€νμΌ λ° μ€κ³ κ°μ | ||
|
|
||
| - [x] λλ―Έν°μ λ²μΉ μ μ© | ||
| - [x] μ€νΈλ¦Ό 체μ΄λ μ μ€λ°κΏ μ μ© | ||
| - [x] κ³Όλν 체μ΄λ λ©μλ μ κ±° | ||
| - [x] μλ―Έ μλ μμ μ¬μ© (`1` β `ACE`) | ||
| - [x] λΆνμν μ£Όμ μ κ±° (μ΄λ¦/κ΅¬μ‘°λ‘ νν) | ||
| - [x] primitive νμ μ wrapper κ°μ²΄λ‘ κ°μΈκΈ° | ||
| - [x] mutableμΌ νμκ° μλ κ²½μ° `final` μ¬μ© | ||
|
|
||
| --- | ||
|
|
||
| ## λλ©μΈ ꡬ쑰 κ°μ | ||
|
|
||
| - [x] μΌκΈ 컬λ μ μ μ© β `Hand` | ||
| - [x] `Hand`μ κΈ°λ₯ ν΅ν© | ||
| - [x] μ€μ½μ΄ κ³μ° | ||
| - [x] μν νλ¨ | ||
| - [x] Ace κ³μ° λ‘μ§ | ||
| - [x] κΈ°μ‘΄ `Calculator` μ κ±° | ||
|
|
||
| --- | ||
|
|
||
| ## μμΈ μ²λ¦¬ λ° ν μ€νΈ | ||
|
|
||
| - [x] νλ μ΄μ΄ μ λ ₯μ΄ μλ κ²½μ° μμΈ μ²λ¦¬ | ||
| - [x] κ²μ κ·μΉ κ²μ¦ λ‘μ§ μΆκ° | ||
| - [x] ν μ€νΈ μΌμ΄μ€ μΆκ° | ||
|
|
||
|
|
||
| --- | ||
|
|
||
| # μ¬μ΄ν΄2 κΈ°λ₯ ꡬν | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. μ΄λ² μ¬μ΄ν΄μ λ―Έμ μ€ κΈ°λ‘μ΄ μμλκ±° κ°μλ° READMEλ PRμλ λ°λ‘ μμ μ΄μ£Όμλμ?!
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. κΈ°λ‘μ ν΄λμλλ° PRμμ μ§λ¬Έ 거리λ₯Ό κ³ λ―Όνλ€κ° μ λ κ²μ λμ³€μ΅λλ€ π₯² |
||
|
|
||
| ## 1. λ°°ν κΈμ‘ κ΄λ¦¬ | ||
| - [X] λ°°ν κΈμ‘μ κ΄λ¦¬νλ λλ©μΈμ ꡬννλ€. | ||
| - [X] μ²μ λ°μ λ°°ν κΈμ‘μ μ μ₯ | ||
| - [X] μ λ ₯ λ°μ μ μ° μ κ²°κ³Ό μν(μΉ/무/ν¨/λΈλμ/λ²μ€νΈ)μ λ°λΌ κ³μ°ν μ΄ μμ΅μ λ¦¬ν΄ | ||
| - [X] λλ¬λ₯Ό νλ μ΄μ΄μ μμμ λ°μ§ μκ³ , λλ¬μ νλ μ΄μ΄ λͺ¨λ μΆμν μν€λ Participants μμ± | ||
| ## 2. νμ μΆκ° | ||
| - [X] κΈ°μ‘΄ `Result`μ λΈλμκ³Ό λ²μ€νΈλ₯Ό μΆκ° | ||
| - [X] μ²μ BlackJackμ΄ λ¬ κ²½μ° λΈλμ μνλ‘ κ²°κ³Όμ μ μ₯ | ||
| - κΈ°μ‘΄μλ μνκ°μ μ μ₯ν΄λμ§ μκ³ λ§μ§λ§μ νΈλ κ²°κ³Όλ‘ μ΅μ’ Dto 리μ€νΈλ₯Ό λ§λ€μ΄ μΉν¨νμ μ νμμΌλ, μμ λ μν©μμ λΈλμμ 미리 체ν¬νκ³ ννΈ/μ€ν λ λ° μΉν¨ νμ μμ μ μΈν΄μΌ νλ―λ‘ μλ‘μ΄ κΈ°λ₯ μΆκ° | ||
| - [X] λ² ν κΈμ‘κ³Ό κ²°κ³Όλ₯Ό ν¨κ» μ μ₯νλλ‘ μμ | ||
| - [X] μ΄κΈ° μΉ΄λ λλ‘μ°κ° λλ μ§ν λΈλμμΈ μ μ λ₯Ό μ°Ύμμ κ²°κ³Ό νλ κ°±μ | ||
| - [X] κ²°κ³Όμ λ°λ₯Έ λ°°λΉ μμ΅μ μν κ°μΌλ‘ κ°μ§λλ‘ | ||
| - 무μΉλΆλ μκΈ λ¦¬ν΄ -> *1 | ||
| - μΉμ μκΈ + μμ΅ -> * 2 | ||
| - ν¨, λ²μ€νΈλ μκΈ μμ€ -> * -1 | ||
| - μ²μλΆν° λΈλμμΈ κ²½μ° λ°°ν μ 1.5λ°° μμ΅ -> * 2.5 | ||
| - [X] νλ μ΄μ΄ Hit/Stand λ¨κ³μμ BlackJackμ΄ μλ μ μ λ§ νν°λ§νμ¬ λ¬Έλ΅ μ§ν | ||
| - [X] λλ¬ μΆκ° λλ‘μ° λ¨κ³μμ Bustκ° λλ©΄ μ¦μ μ΅μ’ κ²°κ³Ό μμ± λ¨κ³λ‘ μ΄λ | ||
| - [X] κ° νλ μ΄μ΄μ λν΄ μ΅μ’ Resultλ₯Ό κ³μ° | ||
| - [X] νλ μ΄μ΄κ° bustλ©΄ BUST | ||
| - [X] bustκ° μλλ©΄ λλ¬μ μ μ λΉκ΅ ν WIN, LOSE, DRAW νμ | ||
| - [X] natural blackjackμΈ κ²½μ° λΈλμ λ°°λΉ κ·μΉμ λ°μν μ μλλ‘ λ³λ μ²λ¦¬ | ||
| - [X] κ³μ°λ Result λ°νμΌλ‘ μ μ° κΈμ‘ κ³μ° | ||
| - [X] Resultμ μ μ° κΈμ‘μ ν¬ν¨ν DTO μμ± | ||
|
|
||
| ## 3. λ°°ν κΈμ‘ μ λ ₯νμ¬ νλ μ΄μ΄ μμ± | ||
| - [X] νλ μ΄μ΄ μ΄λ¦ μ λ ₯ ν λ°°ν κΈμ‘λ μ λ ₯ | ||
| - [X] νλ μ΄μ΄μ κΈμ‘μ λ§€νν΄μ νλ μ΄μ΄ μμ± | ||
| - [X] νλ μ΄μ΄μ λ°°ν κΈμ‘μ λ€λ£¨λ λ©μλ ꡬν | ||
|
|
||
| ## 4. λ² ν κ²°κ³Ό νμ λ° μΆλ ₯ | ||
| - [X] κΈ°μ‘΄ λλ¬μ μΉ,무,ν¨ μΆλ ₯ κΈ°λ₯ μ κ±° | ||
| - [X] νλ μ΄μ΄λ€μ μΉ, 무, ν¨(λ²μ€νΈ), λΈλμ κΈ°μ€μΌλ‘ κ°μ κ³μ°νμ¬ μμ΅μ μΆλ ₯νλλ‘ μμ | ||
| - [X] λλ¬ κΈ°μ€ μ΄ μμ΅ κ³μ° λ°μμ μΆλ ₯νλ κΈ°λ₯ ꡬν | ||
|
|
||
|
|
||
| ## κ³ λ―Ό | ||
| - Playersλ₯Ό copyOfλ‘ ν΄λ μμ 볡μ¬λΌ Player μ체μλ μ κ·Όμ΄ κ°λ₯ν΄μ§λ€. Player μ체μ λ³λ κ°λ₯μ±μ? | ||
|
|
||
|
|
||
| --- | ||
|
|
||
| ## PR 리뷰 ν μΆκ° μμ μ¬ν | ||
| - [X] μ¬μ©νμ§ μλ Result enum νλ μ κ±° | ||
| - [X] DTOμ intialHandSize μ κ±° | ||
| - [X] λμΌν μΉ΄λκ° νλ μ΄μ΄μκ² λλ‘μ°λλ λ¬Έμ ν΄κ²° | ||
| - [X] Players μΈμ€ν΄μ€ μμ± λ° μΆκ° λ°©μ μμ | ||
| - [X] splitPlayerNameInput μ€νΈλ¦Ό λΆλ³ 리μ€νΈλ‘ μμ (toList) | ||
| - [X] ν μ€νΈμμλ§ μ°μ΄λ handSize λ©μλ μ κ±° | ||
| - [X] GameResultJudgeμ κ²°κ³Ό λΆκΈ° μ± μμ enumμκ² λκΈ°κΈ° | ||
| ~~- [ ] 컨νΈλ‘€λ¬κ° λ§€λμ λ₯Ό μνλ‘ λ€κ³ μλ ꡬ쑰 κ°μ ~~ | ||
| - [X] Resultμ λ°°λΉ μμ΅κΈ λΉμ¨ λΆλ¦¬ | ||
| - [X] PlayerStatusμμ μμ΅ κ³μ° νλ λΆλΆ λΆλ¦¬νκΈ° | ||
| - [X] κΈ°λ‘ λ΄μ© README.md μΆκ° | ||
| - [X] updateNaturalBlackJack μν μ λ°μ΄νΈκ° λ°μμ νΈμΆλλ λ¬Έμ μμ | ||
|
|
||
|
|
||
|
|
||
|
|
||
| ## π λ―Έμ κΈ°λ‘ | ||
|
|
||
| ### κΈ°λ₯ μΆκ°λ‘ μΈν΄ μμ ν μμΉ | ||
|
|
||
| μ΄λ² λ―Έμ μμλ **λ² ν κΈ°λ₯μ μΆκ°νλ€κ³ κ°μ νκ³ λ³κ²½ λ²μλ₯Ό λΆμ**νμλ€. | ||
|
|
||
| λ² ν κΈ°λ₯μ λ¨μν λ΄λΆ λ‘μ§μ΄ μλλΌ | ||
| **μ λ ₯ β μν μ μ₯ β κ²μ μ§ν β κ²°κ³Ό κ³μ° β μΆλ ₯** μ 체 νλ¦μ μν₯μ μ£Όλ κΈ°λ₯μ΄μλ€. | ||
|
|
||
| κ·Έ κ²°κ³Ό λ€μ μμΉμμ μμ μ΄ νμνλ€κ³ νλ¨νμλ€. | ||
|
|
||
| | μμ μμΉ | μ΄μ | | ||
| |---|---| | ||
| | Player | νλ μ΄μ΄κ° λ² ν κΈμ‘μ μνλ‘ κ°μ ΈμΌ νλ€ | | ||
| | Players | νλ μ΄μ΄ μ§ν©μμ λ² ν μ 보μ κ²°κ³Ό μ§κ³κ° νμ | | ||
| | GameManager | κ²μ κ²°κ³Ό κ³μ° μ λ² ν μ μ° λ‘μ§ μΆκ° | | ||
| | GameController | κ²μ μμ μ μ λ² ν κΈμ‘ μ λ ₯ νμ | | ||
| | InputView | νλ μ΄μ΄λ³ λ² ν κΈμ‘ μ λ ₯ | | ||
| | OutputView | λ² ν κ²°κ³Ό λ° μμ΅ μΆλ ₯ | | ||
| | GameFinalResultDto | κ²°κ³Ό DTOμ μμ΅ μ 보 μΆκ° | | ||
| | Result | μΉν¨μ λ°λ₯Έ μ μ° κΈ°μ€ μΆκ° | | ||
|
|
||
| **μ΄ μμ μμΉ: 8κ°** | ||
|
|
||
| μ΄λ₯Ό ν΅ν΄ **νλμ κΈ°λ₯μ΄ μ¬λ¬ κ³μΈ΅μ λ°λΌ μ΄λνλ©΄ μμ λ²μκ° λμ΄μ§λ€**λ κ²μ νμΈνλ€. | ||
|
|
||
| --- | ||
|
|
||
| ### μ¬μ΄ν΄ 1 λλΉ μμ λ²μ | ||
|
|
||
| μ¬μ΄ν΄1μμλ κ²μ λ‘μ§ λλΆλΆμ΄ `GameManager`μ μ§μ€λμ΄ μμλ€. | ||
|
|
||
| ``` | ||
| GameManager | ||
| β μΉ΄λ λΆλ°° | ||
| β μ μ κ³μ° | ||
| β κ²μ μ§ν | ||
| β μΉν¨ κ³μ° | ||
| ``` | ||
|
|
||
| μ΄ κ΅¬μ‘°μμλ κΈ°λ₯μ΄ μΆκ°λ λ **GameManagerμ μμ μ΄ μ§μ€λλ λ¬Έμ **κ° μμλ€. | ||
|
|
||
| μ΄λ² μ¬μ΄ν΄μμλ λ€μκ³Ό κ°μ΄ μ± μμ λΆλ¦¬νμλ€. | ||
|
|
||
| - `Hand` β μΉ΄λ μ μ κ³μ° | ||
| - `Players` β νλ μ΄μ΄ μ§ν© κ΄λ¦¬ | ||
| - `GameResultJudge` β μΉν¨ νμ | ||
| - `PlayerStatus` β νλ μ΄μ΄ μν κ΄λ¦¬ | ||
|
|
||
| κ·Έ κ²°κ³Ό **κΈ°λ₯ μΆκ° μ μμ λ²μκ° νΉμ κ°μ²΄μ μ§μ€λμ§ μκ³ λΆμ°λλλ‘ κ°μ λμλ€.** | ||
|
|
||
| --- | ||
|
|
||
| ### κ·μΉ μ μ©μΌλ‘ λ³κ²½ν μ½λ | ||
|
|
||
| νμμ λ€μκ³Ό κ°μ κ·μΉμ μ νμλ€. | ||
|
|
||
| - μ± μ λΆλ¦¬ κΈ°μ€ | ||
| - **(If-Then)** λ§μ½ νΉμ μꡬμ¬νμ΄ λ³κ²½λμμ λ, κ·Έμ 무κ΄ν μ½λλ€κΉμ§ ν ν΄λμ€ μμμ ν¨κ» μμ νκ±°λ ν μ€νΈν΄μΌ νλ€λ©΄ β λ³κ²½μ μμΈμ΄ νλκ° λλλ‘ μ± μμ λΆλ¦¬νμ¬ μμ§λλ₯Ό λμΈλ€. | ||
| - **(κΈ°μ€)** λ³κ²½μ μ΄μ κ° νλ μ΄μμΌ λ λΆλ¦¬νλ€. | ||
| - λ³κ²½ λ²μ μ ν κ·μΉ | ||
| - **(If-Then)** λ§μ½ κΈ°λ₯ μΆκ° μ 3κ³³ μ΄μμ νμΌ μμ μ΄ νμνλ©΄ β κ³΅ν΅ λ‘μ§μ μΆμΆνκ±°λ μ± μμ μ¬λΆλ°°νλ€ | ||
| - **(κΈ°μ€)** μ± μμ μ μ ν μΊ‘μννμ§ λͺ»ν΄, λ¨μΌ λ³κ²½μ νκΈ ν¨κ³Όκ° μ¬λ¬ κ°μ²΄(3κ³³ μ΄μ)λ‘ ν©μ΄μ§ λ λ³κ²½ λ²μλ₯Ό μ ννλ€. | ||
| - ν μ€νΈμ μ€κ³μ κ΄κ³ κ·μΉ | ||
| - **(If-Then)** λ§μ½ λΉκ΅μ κ°μ μ°μ°μ μν΄ ν΄λΉ λ°μ΄ν°λ₯Ό κ°μ§ κ°μ²΄μ λ°μ΄ν°λ₯Ό μ§μ κΊΌλ΄μμ μ¬μ©νκ³ μλ€λ©΄ β λ°μ΄ν°λ₯Ό κ°μ§ κ°μ²΄μκ² μ§μ λ¬Όμ΄λ³΄λλ‘(Tell, Don't Ask) μμ νμ¬ λ³κ²½ μ¬νλ₯Ό λ΄λΆμ κ°λλ€. | ||
| - **(κΈ°μ€)** μΈλΆμμ κ°μ²΄μ λ°μ΄ν°λ₯Ό μ§μ κΊΌλ΄μ΄ μ°μ°μ΄λ νλ¨μ μννλ κ²½μ°, λ°μ΄ν°λ₯Ό κ°μ§ κ°μ²΄μκ² μ§μ λ¬Όμ΄λ³΄λλ‘ λ³κ²½νλ€. | ||
|
|
||
| λͺ¨λ κ·μΉμ νμ μμνλ©΄μ μμ νμ§ λͺ»νμμ§λ§, λνμ μΌλ‘ μλμ κ·μΉμ κ°μ₯ μμνλ©΄μ μμ νλ€. | ||
|
|
||
| > **Tell, Don't Ask** | ||
| > | ||
| > κ°μ²΄μ λ°μ΄ν°λ₯Ό κΊΌλ΄μ μΈλΆμμ νλ¨νμ§ λ§κ³ | ||
| > ν΄λΉ κ°μ²΄μκ² μ§μ λ¬Όμ΄λ³΄λλ‘ νλ€. | ||
|
|
||
| μ΄ κ·μΉμ μ μ©νλ©΄μ, κΈ°μ‘΄μ λλ©μΈ κ°μ²΄μ νλ κ°μ μΈλΆμ νΈμΆνμ¬ μ¬μ©νλ λ°©μμμ | ||
| λλ©μΈ κ°μ²΄ μ€μ€λ‘ νλνμ¬ μν κ°μ νμ©ν μ± μμ μ§λλ‘ νμκ³ μΈλΆμμλ λ΄λΆ ꡬνμ λͺ°λΌλ | ||
| μμ²λ§μΌλ‘ μνλ κ°μ μ»μ μ μλλ‘ νμλ€. | ||
|
|
||
| μ΄λ₯Ό ν΅ν΄ μμ§λκ° κ°μνκ³ , κ°μ²΄ κ°μ νλ ₯ κ΄κ³λ₯Ό κΈ°μ‘΄λ³΄λ€ κ°μ λ ννλ‘ κ΅¬μΆν μ μμλ€κ³ μκ°νλ€. | ||
|
|
||
| --- | ||
|
|
||
| ### ν μ€νΈκ° μ€κ³λ₯Ό λμ΄ μκ° | ||
|
|
||
| λλ¬μ μ΅μ’ μμ΅μ κ³μ°νλ ν μ€νΈλ₯Ό μμ±νλ©΄μ | ||
| λλ¬ μμ΅μ λ³λμ κ·μΉμΌλ‘ λ€μ κ³μ°νκΈ°λ³΄λ€ | ||
| **νλ μ΄μ΄ μμ΅μ ν©μ μμλ₯Ό μ·¨ν κ°μΌλ‘ μ μνλ ꡬ쑰**κ° λ μμ°μ€λ½λ€λ μ μ νμΈνλ€. | ||
|
|
||
| ```java | ||
| assertThat(firstPlayerResult.getProceeds()).isEqualTo(1000); | ||
| assertThat(secondPlayerResult.getProceeds()).isEqualTo(-2000); | ||
| assertThat(dealerResult.getProceeds()).isEqualTo(1000); | ||
| ``` | ||
| μ΄ ν μ€νΈλ₯Ό ν΅ν΄ | ||
| λλ¬μ νλ μ΄μ΄μ μ μ° λ‘μ§μ κ°κ° λ°λ‘ λκΈ°λ³΄λ€ | ||
| νλ μ΄μ΄ κ²°κ³Όλ₯Ό λ¨Όμ κ³μ°ν λ€ λλ¬ κ²°κ³Όλ₯Ό ν©μ°μΌλ‘ ꡬνλ κ²μ΄ | ||
| κ·μΉ μ€λ³΅μ μ€μ΄κ³ μ€κ³λ₯Ό λ λ¨μνκ² λ§λ λ€λ μ μ μ μ μμλ€. | ||
|
|
||
| --- | ||
|
|
||
| ### μ΄λ² λ―Έμ μμ μ»μ μΈμ¬μ΄νΈ | ||
|
|
||
| κΈ°λ₯ μΆκ° μμ²΄λ³΄λ€ λ ν¬κ² λλ μ μ λ€μμ΄λ€. | ||
|
|
||
| - μν μ΄ λͺ νν κ°μ²΄ (`Card`, `Hand`, `Deck`) λ λ³νμ κ°νλ€. | ||
| - μ¬λ¬ μ± μμ΄ μμΈ κ°μ²΄ (`GameManager`) λ λ³νμ μ½νλ€. | ||
| - ν μ€νΈλ₯Ό μμ±νλ©΄μ μ€κ³μμ λΆμμ ν μ§μ μ΄ μ΄λμΈμ§ νμ ν μ μλ€. | ||
|
|
||
| μ΄λ² λ―Έμ μ ν΅ν΄ ꡬ쑰μ λν μ€κ³κ° μλͺ» λμλμ§ μμμ± μ μλ μ νΈμλ 무μμ΄ μκ³ , | ||
| μ΄λ€ μ€κ³κ° μ μ°νλ©΄μλ μμ μ μΈ μ½λλ₯Ό μμ±ν μ μλμ§ μ μ μμλ€. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μΌλ¨ νμ μ΄ μμ§ μλλ€λΌκ³ λ§μν΄ μ£Όμ ¨λλ° λ무 μ‘°κΈν΄νμ€ νμλ μμ κ² κ°μμ!
μ§κΈ λ§μν΄μ£Όμ κ³ λ―Ό μμ²΄κ° λ°λ‘ κ·Έ κΈ°μ€μ λ§λ€μ΄κ°λ κ³Όμ μ΄λΌκ³ μκ°ν΄μ :)
μ€κ³λ₯Ό νλ€ λ³΄λ©΄ μ¬μ€ μ λ΅μ΄ μλ κ²½μ°λ λ§μ§ μμ κ² κ°μμ~ κ°μ λ¬Έμ λΌλ κ°λ°μλ§λ€ λ€λ₯Έ ꡬ쑰λ₯Ό μ ννκΈ°λ νκ³ , μν©μ λ°λΌ λ μ μ ν μ€κ³κ° λ¬λΌμ§κΈ°λ νλκΉμ!
κ·Έλμ μ λ μ€κ³ κ²°μ μ ν λ νμ κ³ λ €νλ λΆλΆμ μλ μΈ κ°μ§μΈλ°μ.
μ¬λ¬ μ€κ³ μ νμ§κ° μμ λλ κ²°κ΅ μ΄ μΈ κ°μ§ κΈ°μ€μμ μ΄λ μͺ½μ΄ λ λμμ§ μκ°ν΄λ³΄κ³ κ²°μ νλ νΈμ λλ€!
λ μ΄λ³΄ κ°λ°μκ° μ€κ³ κ²°μ μ ν λ κ°μ₯ μ€μνκ² κ°μ Έκ°λ©΄ μ’μ κΈ°μ€μ λ¨μΌ μ± μ μμΉ(SRP)μ΄λΌκ³ μκ°ν©λλ€.
κ°μ²΄κ° λ무 λ§μ μΌμ νκ³ μμ§λ μμμ§, νλμ κ°μ²΄κ° νλμ μ± μμ μ§μ€νκ³ μλμ§λ₯Ό κ³μ μμ¬ν΄λ³΄λ κ²λ§μΌλ‘λ μ€κ³κ° κ½€ λ§μ΄ μ 리λλ κ²½νμ νκ² λλ κ² κ°μμ~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
λ§μν΄μ£Όμ κΈ°μ€λ€μ΄ λ§μ΄ λμμ΄ λμμ΅λλ€.
νΌμ μ€κ³ ν λ λͺ νν μ λ΅μ΄ μλ λ¬Έμ λ€ λ³΄λ λ΅λ΅ν¨μ λλ λκ° λ§μλλ°,
μ 리ν΄μ£Όμ κ²μ²λΌ
μ΄ μΈ κ°μ§ κΈ°μ€μΌλ‘ λΉκ΅ν΄λ³΄λ λ°©μμ΄ νλ¨ν λ μ’μ κΈ°μ€μ΄ λ κ² κ°μ΅λλ€.
μ΄λ² λ―Έμ μμλ κΈ°λ₯ ꡬνμ μ§μ€νλ€ λ³΄λ μ€κ³ κ²°μ μ λ΄λ¦΄ λ μ΄λ° κΈ°μ€μ μΆ©λΆν μ μ©νμ§ λͺ»νλ κ² κ°μ μμ¬μμ΄ λ¨μ΅λλ€.
μμΌλ‘λ μ€κ³ μ νμ§κ° μ¬λ¬ κ° μμ λ λ§μν΄μ£Όμ κΈ°μ€λ€μ κ°μ§κ³
μ‘°κΈ λ μμμ μΌλ‘ λΉκ΅ν΄λ³΄λ μ°μ΅μ ν΄λ³΄κ² μ΅λλ€. μ’μ μ‘°μΈ κ°μ¬ν©λλ€!