[π μ¬μ΄ν΄1 - λ―Έμ (λΈλμ κ²μ μ€ν)] μ μ΄ λ―Έμ μ μΆν©λλ€.#998
[π μ¬μ΄ν΄1 - λ―Έμ
(λΈλμ κ²μ μ€ν)] μ μ΄ λ―Έμ
μ μΆν©λλ€.#998yenawee merged 73 commits intowoowacourse:jhk01007from
Conversation
- CardShuffler μΈν°νμ΄μ€λ₯Ό λλ©μΈ κ³μΈ΅, ꡬν체λ₯Ό μΈνλΌ κ³μΈ΅μΌλ‘ μ΄λ
- μ½λλ₯Ό κ°λ¨νκ² λ§λ€κΈ° μν΄ classλ₯Ό recordλ‘ λ³κ²½
HandλΌλ λ¨μ΄ μμ²΄κ° λΈλμμμ 'νλ μ΄μ΄κ° κ°μ§κ³ μλ μΉ΄λ λ¬Άμ'μ μλ―ΈνκΈ° λλ¬Έμ λ³κ²½
'μΉ΄λ λ¬Άμ'μ΄λΌλ μλ―Έλ₯Ό Deck λ§μΌλ‘λ μΆ©λΆν ννν μ μκΈ° λλ¬Έμ λ³κ²½
- κ°μ²΄ λ΄λΆμ μμ§λλ₯Ό λμ΄κΈ° μν΄μ
λ³κ²½μ΄μ : isDealerλΌλ Boolean ꡬλΆνκ² λλ©΄ ifλΆκΈ°λ¬Έμ΄ λ§μμ§κ³ μΆν λλ¬μ νλ μ΄μ΄κ°μ μλ‘ λ€λ₯Έ νλμ΄ μκΈ°λ©΄ νλμ ν΄λμ€κ° λ무 μ¬λ¬ μ± μμ λ§‘κ²λλ λ¬Έμ κ° μκΉ
- νμ κ°μ²΄μΈ νλ μ΄μ΄μ λλ¬μμ λ°λ³΅μ μΌλ‘ μ¬μ©λλ λ‘μ§μ΄λΌ λΆλ¦¬
|
νΌλλ°± μ£Όμ ¨λ λΆλΆλ€ λ°μνμ΅λλ€! μ€μ μ μΌλ‘ 리뷰λ°κ³ μΆμ λΆλΆ, μ§λ¬Έ λͺκ°μ§λ₯Ό μ 리ν΄λ΄€μ΅λλ€. 1. Dealerμ Player μ²λ¦¬κ°μ₯ μ€λ κ³ λ―Όνλ λΆλΆμ Dealerμ Playerλ₯Ό μ΄λ»κ² μ²λ¦¬ν κΉμλλ°μ. κΈ°μ‘΄μ²λΌ 2. Service ν΄λμ€μ λν΄λν μΆκ°μ μΈ νΌλλ°±μ λ°μνλ κ³Όμ μμ Service ν΄λμ€μ νμμ±μ ν¬κ² λλΌμ§ λͺ»ν΄ μ κ±°νκ³ , Serviceμ μλ κΈ°λ₯μ κ° λλ©μΈμΌλ‘ λΆμ° λ°°μΉνμ΅λλ€.νμ§λ§ μ΄λ κ² λ³κ²½νλ λλ©μΈ κ° μμ‘΄μ±μ΄ μκΈ°λ λ¬Έμ κ° μμμ΅λλ€. (μ: Participantμ |
| int dealerWinCount = 0; | ||
| int dealerDrawCount = 0; | ||
| int dealerLoseCount = 0; | ||
| Map<Player, MatchCase> playerMatchResult = new HashMap<>(); |
There was a problem hiding this comment.
"νλ μ΄μ΄λ μ λ ₯λ°μ μμλλ‘ μΆλ ₯νλ€"λ μꡬμ¬νμ΄ μλλ° HashMap μ΄ μ μ ν μ§ λ€μ νμΈν΄μ£ΌμΈμ!
| INPUT_EMPTY_ERROR("νΉμ κ°μ μ λ ₯ν΄μ£ΌμΈμ."), | ||
| INVALID_HIT_STAND_INPUT_ERROR("y λλ nλ§ μ λ ₯ κ°λ₯ν©λλ€."), | ||
| DEALER_NOT_FOUND_ERROR("λλ¬κ° μ‘΄μ¬νμ§ μμ΅λλ€."), | ||
| PLAYER_COUNT_OUT_OF_RANGE(String.format( |
There was a problem hiding this comment.
μ΄ μ ν¨μ± κ²μ¦ μ‘΄μ¬νμ§ μλκ±°κ°μμ!
| validateIsBlank(input); | ||
| input = input.trim(); | ||
|
|
||
| if (!input.matches("[y|n]")) { |
There was a problem hiding this comment.
| if (!input.matches("[y|n]")) { | |
| if (!input.matches("[yn]")) { |
| private final Set<Integer> scores = new HashSet<>(); | ||
|
|
||
| public Hand(List<Card> hands) { | ||
| this.hands = hands; |
There was a problem hiding this comment.
μΈλΆμμ κ°μ Listλ₯Ό μμ νλ©΄ Handμ μνκ° μ€μΌλ©λλ€. λ°©μ΄μ λ³΅μ¬ μ¬μ©ν΄μ£ΌμΈμ!
There was a problem hiding this comment.
μλ
νμΈμ μ μ΄!
νΌλλ°± λ°μ μν΄μ£Όμ
μ λ¨Έμ§νκ² μ΅λλ€. μΆκ°λ‘ λ¬μλ μ½λ©νΈλ λ€μ λ¨κ³μμ λ°μν΄μ£ΌμΈμ :D
-
Participant μΆμ ν΄λμ€ λμ
μ μ²λ¦¬ν΄μ£Όμ κ±° κ°μμ! π κ° ν΄λμ€κ° λ³΄λ€ μμ μ μ± μλ§ κ°μ§λ κ²μΌλ‘ 보μ λλ€. -
Service ν΄λμ€μ μν
μ¬κΈ°μ μλΉμ€λ μ κ±°ν΄μ£Όμ BlackJackService λ₯Ό λ§μν΄μ£Όμ κ±°κ² μ£ ?
ν΅μ¬ νλ¨ κΈ°μ€μ μ΄ λ‘μ§μ΄ νΉμ κ°μ²΄μ μ± μμΈμ§, μλλ©΄ κ°μ²΄λ€ μ¬μ΄μ κ΄κ³μμ λ°μνλ μ± μμΈμ§κ° λ κ±° κ°μμ. μλ₯Ό λ€μ΄μ MatchResult λ₯Ό κ³μ°νλ λ‘μ§μ λλ¬, μ°Έκ°μ μ΄λ κ³³μ λ¬λ μ’ μ΄μνμ£ .
νμ¬λ μ΄κ±Έ Participantsμ λμλλ° Participantsλ λλ¬ + νλ μ΄μ΄ μ 체λ₯Ό λ¬Άμ κ°λ μ΄κ³ , κ²°κ³Όλ₯Ό κ³μ°νλ κ²μ "μ΄ κ·Έλ£Ή μ 체μ μνμμ λμ€λ μ 보" μ΄κΈ°μ Participants μ μμ΄λ μ΄μνμ§ μλ€κ³ λ΄μ. νμ§λ§ μ μ κ³μ°νλ κ³Όμ μμ Participants μ μ°κ΄λμ§ μλ λ€λ₯Έ μμ (e.g μ μλ³ λ°°λΉ) μ΄ λ€μ΄κ°λ€λ©΄ λμ μ κ³ λ €ν΄λ³΄λκ² μ’λ€κ³ μκ°ν©λλ€ :)
+) Deckκ³Ό CardShufflerλ λμΌ λλ©μΈμ νλ ₯ κ°μ²΄μ λλ€. μ°Έμ¬μκ° μμ μ΄ μΉ΄λλ₯Ό λ½λ λ°©λ²μ μκ³ μλ κ²μ μμ°μ€λ¬μ보μ¬μ.
μ²΄ν¬ λ¦¬μ€νΈ
testλ₯Ό μ€ννμ λ, λͺ¨λ ν μ€νΈκ° μ μμ μΌλ‘ ν΅κ³Όνλμ?μ΄λ€ λΆλΆμ μ§μ€νμ¬ λ¦¬λ·°ν΄μΌ ν κΉμ?
TDD κ°λ° λ°©μμ λν΄μ
TDDλ‘ κ°λ°μ νλ€ λ³΄λ μ€μ λ‘μ§μ΄ μλλΌ ν μ€νΈκ° λ¨Όμ μμ±λλ κ΅¬μ‘°κ° μ‘°κΈ μ΄μνκ² λκ»΄μ‘μ΅λλ€. λν μκ°μ΄ λ μ€λ 걸리λ κ² κ°λ€λ μκ°λ λ€μμ΅λλ€. λ‘μ§μ΄ κ·Έλ κ² λ³΅μ‘νμ§ μμ κ²½μ°μλ TDDκ° κΌ νμνμ§ μλ¬Έμ΄ λ€μκ³ , μ°¨λΌλ¦¬ λ©μλ ꡬνμ λ¨Όμ λλΈ λ€ ν μ€νΈλ₯Ό μμ±νλ λ°©μμ΄ λ λ«μ§ μμκΉ νλ μκ°λ λ€μμ΅λλ€.
κ·Έλμ μ€λ¬΄μμλ TDDλ₯Ό μ΄λ»κ² μ μ©νκ³ μλμ§ κΆκΈν©λλ€. μλ₯Ό λ€μ΄ 볡μ‘ν λ©μλμ νν΄μλ§ TDDλ₯Ό μ μ©νλμ§, μλλ©΄ λͺ¨λ λ©μλμ λν΄ TDDλ₯Ό μ€μ²νλμ§ λ± μ€μ λ‘ μ΄λ€ λ°©μμΌλ‘ νμ©νκ³ κ³μ μ§ μκ³ μΆμ΅λλ€
λλ€ κ°μ ν΅μ μ΄λ €μ΄ κ°μ λν ν μ€νΈ
νμ¬ μΉ΄λλ₯Ό λ½λ λ©μλλ΄μλ λλ€ λ‘μ§μ΄ μ‘΄μ¬νμ¬ λ§€λ² λ°ννλ κ°μ΄ λ¬λΌμ§κΈ° λλ¬Έμ ν μ€νΈκ° μ΄λ €μ μ΅λλ€.
νμ¬λ λ¨μν λ²μλ‘ κ²μ¦νκ³ μλλ° λ¦¬ν΄κ°μ΄ λ§€λ² λ¬λΌμ§κΈ° λλ¬Έμ μΈμ κ° ν μ€νΈκ° κΉ¨μ§μ§λ λͺ¨λ₯Έλ€λ μκ°μ΄ λ€μμ΅λλ€.
μ€λ¬΄μμλ μ΄λ¬ν ν΅μ κ° μ΄λ €μ΄ λ‘μ§μ μ΄λ»κ² ν μ€νΈνλμ§ κΆκΈν©λλ€.
ν¨ν€μ§ ꡬ쑰λ₯Ό μ΄λ»κ² μ 리νλ κ²μ΄ μ’μμ§
νμ¬ ν¨ν€μ§ ꡬ쑰λ 컨νΈλ‘€λ¬/μλΉμ€/λλ©μΈ/λ·°μ κ°μ΄ λ μ΄μ΄ κΈ°μ€μΌλ‘ λλμλλ°μ. λ€λ§ domain ν¨ν€μ§ λ΄λΆμ Card, CardDeck, HandCards, Participant λ± μ¬λ¬ κ°μ²΄κ° μμ΄ νλμ 보기μ μ’μ§ μμ κ² κ°λ€κ³ λκΌμ΅λλ€. κ·Έ μΈμλ ν¨ν€μ§ κΉμ΄ λ©΄μμ μ΄λ€ κ΅¬μ‘°κ° μ’μμ§ μ견μ ꡬνκ³ μΆμ΅λλ€.
Dealerμ Playerμ κ΄κ³μ λν΄
μΌλ¨ λλ¬λ κ²°κ΅ λΈλμμ μ°Έμ¬νλ ν λͺ μ νλ μ΄μ΄λΌκ³ μκ°νμ΅λλ€.
κ·Έλ¬λ μμμ μ μ©νκΈ° 보λ€λ isDealer λΆλ¦¬μΈ νλλ‘ κ΅¬λ³νλλ‘ κ΅¬ννμ΅λλ€. 곡λΆλ₯Ό νλ©΄μ μμμ ν΅ν ꡬ쑰보λ€λ μ‘°ν©μ΄λ λ¨μν λͺ¨λΈμ μ°μ κ³ λ €ν΄μΌνλ€κ³ λ£κΈ°λ νκ³ , μμμ 무쑰건 μ§μν΄μΌ νλμ§λ κ³ λ―Όλ©λλ€. κ·Έλμ λ§μ½, 리뷰μ΄λμ΄ λΈλμμ ꡬννλ€κ³ νλ€λ©΄ Dealerμ Playerλ₯Ό μ΄λ»κ² λͺ¨λΈλ§νμμ§ μ견μ λ£κ³ μΆμ΅λλ€!
λ©μλ κΈΈμ΄
10λΌμΈ μ΄λ΄κ·μΉνμ΄μ κ³ λ―Όνλ©΄μ μ΅λν 10λΌμΈ λ΄μΈλ‘ μ΄λ€μ§κ² λ©μλλ₯Ό μΆμΆνλ©° λ Έλ ₯νμμλ λΆκ΅¬νκ³ , 10λΌμΈμ λλ λ©μλκ° μμ§ μ‘΄μ¬νλλ°μ.
κ·Έλ¬λ€λ³΄λ μ€λ¬΄μμλ λ©μλ κΈΈμ΄λ₯Ό 10λΌμΈ μ΄λ΄λ‘ μμ±νλμ§λ κΆκΈν΄μ‘μ΅λλ€. κ·Έλ¦¬κ³ μ§λμΉκ² λ©μλλ₯Ό μκ² λλ κ²μ μλμ§, μ€νλ € νλ¦μ λ°λΌκ°κΈ° μ΄λ €μμ§μ§ μμλμ§ κ³ λ―Όνκ² λμ΅λλ€..
λλ€ λ‘μ§μ μμΉ
μ λ νΈλΌν μΉ΄λλ₯Ό μλ λλ€(shuffle) λ‘μ§μ CardDeck λλ©μΈ κ°μ²΄ λ΄λΆμ λμ§, μλλ©΄ infra κ³μΈ΅μ λ³λμ ν΄λμ€λ‘ λμ§ κ³ λ―Όνμμ΅λλ€.
μ λ μ¬κΈ°μ ν μ€νΈ μ©μ΄μ±κ³Ό λ‘μ§μ ν΅μ κ°λ₯μ±μ λ μ€μνκ² μκ°νμ¬ λλ€(shuffle) λ‘μ§μ μΈνλΌ κ³μΈ΅μ λλ λ°©μμΌλ‘ μ ννμ΅λλ€. μ΄μ κ΄λ ¨νμ¬ μ견μ λ£κ³ μΆμ΅λλ€.