Skip to content

Latest commit

ย 

History

History
78 lines (51 loc) ยท 2.71 KB

File metadata and controls

78 lines (51 loc) ยท 2.71 KB

java-blackjack

์—ฐ๋ฃŒ ์ฃผ์ž… ๊ธฐ๋Šฅ ๋ชฉ๋ก

MotorVehicle (Interface)

  • ๋ฆฌํ„ฐ๋‹น ์ด๋™ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐ˜ํ™˜ getDistancePerLiter
  • ์—ฌํ–‰ํ•  ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐ˜ํ™˜ getTripDistance
  • ์ฐจ์ข… ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ getName

Car (abstract class) (implements MotorVehicle)

  • ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ฅธ ์—ฐ๋ฃŒ๋Ÿ‰์„ ๊ณ„์‚ฐ ํ›„ ๋ฐ˜ํ™˜ getChargeQuantity
  • ๋ฉค๋ฒ„๋ณ€์ˆ˜ distance

Sonata, Avante, K5 (extends Car)

  • ์ƒ์„ฑ์ž๋กœ distance ๋ฐ›๊ธฐ
  • private static final ๋กœ ์—ฐ๋น„๋ฅผ ๊ฐ€์ง. (10km/๋ฆฌํ„ฐ, 15, 13)

RentCompany

  • ์ฐจ List๋ฅผ ๊ฐ€์ง.
  • private ์ƒ์„ฑ์ž
  • static create()์„ ํ†ตํ•ด ๊ฐ์ฒด ์ƒ์„ฑ
  • addCar(Car) ๋ฅผ ํ†ตํ•ด ์ฐจ List์— ์ €์žฅ
  • generateReport ๋ฅผ ํ†ตํ•ด report String ๋ฐ˜ํ™˜

๋ธ”๋ž™์žญ

[Card : Denomination, Shape]

  • enum์œผ๋กœ 1~10,J,Q,K๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.
  • enum์œผ๋กœ ํ•˜ํŠธ,์ŠคํŽ˜์ด๋“œ,๋‹ค์ด์•„๋ชฌ๋“œ,ํด๋กœ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.
  • value์™€ shape๋ฅผ ํ•ฉ์ณ ํ•œ ์žฅ์˜ ์นด๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

[Person]

  • ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ์นด๋“œ ๋ชฉ๋ก์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.
  • ์นด๋“œ 1์žฅ์„ ์ธ์ž๋กœ ์ „๋‹ฌ ๋ฐ›์•„ ์นด๋“œ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•œ๋‹ค.

[Player extends Person]

  • ํ”Œ๋ ˆ์ด์–ด๋Š” ์ถ”๊ฐ€์ ์œผ๋กœ ์ด๋ฆ„์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.
  • ์ƒ์„ฑ ์‹œ์— ํ”Œ๋ ˆ์ด์–ด ์ด๋ฆ„๋งŒ ์ธ์ž๋กœ ์ „๋‹ฌ ๋ฐ›์•„์„œ ์ž๊ธฐ์˜ ์ด๋ฆ„์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  • ์ „๋‹ฌ ๋ฐ›์€ 1์žฅ์˜ ์นด๋“œ๋ฅผ ์ž์‹ ์˜ ์นด๋“œ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•œ๋‹ค. (Person ๊ธฐ๋Šฅ)

[Dealer extends Person] ๋”œ๋Ÿฌ๊ฐ€ ์นด๋“œ๋ฅผ ์„ž์–ด์„œ ๋ฝ‘๋Š” ์—ญํ• . CardDeck์œผ๋กœ ๋ถ„๋ฆฌ.

  • ์ƒ์„ฑ ์‹œ์— CardDeck์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  • ์ธ์ž๋กœ ์ „๋‹ฌ ๋ฐ›์€ 1์žฅ์˜ ์นด๋“œ๋ฅผ ์ž์‹ ์˜ ์นด๋“œ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•œ๋‹ค. (Person ๊ธฐ๋Šฅ)
  • ์ „๋‹ฌ ์ธ์ž๋กœ ๋ฐ›์€ ์žฅ์ˆ˜๋งŒํผ ์นด๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

[CardDeck]

  • ์ „์ฒด ์นด๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (static)
  • ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ, ๋งŒ๋“ค์–ด์ง„ 52์žฅ์˜ ์นด๋“œ๋กœ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  • shuffleํ•œ ๋’ค ์ „๋‹ฌ์ธ์ž๋กœ ๋ฐ›์€ ์ˆ˜๋งŒํผ ์นด๋“œ๋ฅผ ๋ฝ‘์•„์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (์ œ๊ฑฐํ•˜๋ฉด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.)

[GameApplication]

  • GameSetup์˜ Dealer์™€ List๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ์ƒ์„ฑ๋œ setup ๋‚ด์šฉ์„ ResultView์—๊ฒŒ ๋„˜๊ธด๋‹ค.

  • ์นด๋“œ์˜ ํ•ฉ์ด 21 ์ดํ•˜์ธ์ง€ ์นด๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ๋ฝ‘์„ ๊ฒƒ์ธ์ง€ ์งˆ๋ฌธํ•œ๋‹ค.

  • ๋”œ๋Ÿฌ์—๊ฒŒ ํ•„์š”ํ•œ ์žฅ์ˆ˜๋งŒํผ ์นด๋“œ๋ฅผ ์š”๊ตฌํ•œ๋‹ค.

  • ๋ฐ˜ํ™˜ ๋ฐ›์€ ์นด๋“œ๋ฅผ ํ†ตํ•ด ๋”œ๋Ÿฌ์™€ ํ”Œ๋ ˆ์ด์–ด๋“ค์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

[InputView]

-[x] ํ”Œ๋ ˆ์ด์–ด ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์•„์„œ ์‰ผํ‘œ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•œ List์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. -[x] ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์นด๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ๋ฐ›์„ ๊ฒƒ์ธ์ง€ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

[ResultView]

-[x] ๋”œ๋Ÿฌ์™€ ํ”Œ๋ ˆ์ด์–ด List<>๋ฅผ ์ „๋‹ฌ ๋ฐ›์•„ ์ด๋ฆ„๊ณผ ์นด๋“œ ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•œ๋‹ค. -[x] ์ฒ˜์Œ ์‹œ์ž‘ ๋•Œ ๋”œ๋Ÿฌ๋Š” 1์žฅ์˜ ์นด๋“œ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. -[ ] ๋”œ๋Ÿฌ์™€ ํ”Œ๋ ˆ์ด์–ด์˜ ์ตœ์ข… ์ŠนํŒจ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.