miseongk / java-blackjack

블랙잭 미션 저장소

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

java-blackjack

블랙잭 미션 저장소

요구사항 분석

주요 객체의 속성, 역할

Money

  • 배팅 금액의 1.5배를 받는다.
  • 배팅 금액만큼 받는다.
  • 배팅 금액만큼 잃는다.

Participant

  • Cards를 가진다.
  • Card를 받는다.
  • 총 점수를 계산한다.
  • 버스트인지 확인한다.
  • 블랙잭인지 확인한다.

Dealer

  • Participant를 가진다.
  • 초기 카드를 한 장만 보여준다.
  • 카드를 더 뽑을지 결정한다.

Player

  • 이름을 가진다.
    • 이름의 길이는 최소 1글자에서 최대 5글자이다.
  • Participant를 가진다.
  • 초기 카드를 두 장 모두 보여준다.
  • 카드를 더 뽑을지 결정한다.
  • BettingMoney를 가진다.

Players

  • Player들을 가진다.
  • 입력된 이름을 가지고 Players를 만들어 반환한다.
    • 최소 2명에서 최대 8명의 Players를 생성한다.

Result (Enum)

  • 결과를 가진다. (승, 무, 패)

Profit

  • 플레이어 수익을 계산한다.
    • 딜러와 플레이어 모두 블랙잭인 경우 1배를 받는다.
      • 플레이어만 블랙잭이면 1.5배를 받는다.
    • 버스트이면 1배를 잃는다.
    • 딜러가 버스트이면 버스트가 아닌 플레이어 모두 1배를 받는다.
  • 딜러 수익을 계산한다.

GameResult

  • 플레이어 결과를 계산한다.
  • 플레이어 결과를 뒤집어서 반환한다.
  • 딜러 결과(승, 무, 패)를 카운트해서 반환한다.

Card

  • NumberPattern을 가진다.
  • 카드가 ACE인 지 확인한다.
  • 카드 정보를 보여준다.

Cards

  • Card들을 가진다.
  • 가지고 있는 Card로 총점을 계산한다.
  • ACE 카드를 갖고 있는지 확인한다.
  • 가지고 있는 카드가 버스트인지 확인한다.
  • 가지고 있는 카드가 블랙잭인지 확인한다.
  • 카드를 추가한다.

Score

  • ACE를 11로 계산한다.
  • 점수가 버스트인지 확인한다.
  • 점수가 블랙잭인지 확인한다.
  • 점수를 비교한다.
    • 현재 점수보다 작거나 같은지 확인한다.
    • 현재 점수보다 작은지 확인한다.
    • 현재 점수와 같은지 확인한다.

Deck

  • 게임에서 뽑히지 않은 랜덤한 카드를 뽑아준다.
  • 뽑힌 카드를 가진다.

Number (Enum)

  • 숫자를 가진다. (A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K)
  • 숫자를 점수로 변환해준다.

Pattern (Enum)

  • 문양을 가진다. (하트, 스페이드, 클로버, 다이아몬드)
    • 문양에 맞는 이름을 가진다.

입출력 요구사항

입력 요구사항

  • 참가자의 이름을 입력받는다. (','로 구분짓는다.)
    • 공백을 입력했는지 검증한다.
  • 카드를 더 받을지 입력받는다.
    • 'y' 또는 'n' 을 입력했는지 검증한다.
  • 배팅 금액을 입력받는다.
    • 공백을 입력했는지 검증한다.
    • 정수를 입력했는지 검증한다.
    • 양수를 입력했는지 검증한다.

출력 요구사항

  • 딜러와 참가자들에게 나누어준 카드를 출력한다.
    • 딜러는 한 장의 카드만 출력한다.
  • 참가자의 현재 가진 카드들을 출력한다.
  • 딜러의 점수가 16점 이하인 경우, 딜러가 한 장의 카드를 더 받았다고 출력한다.
  • 참가자와 딜러가 가진 카드들을 모두 출력하고, 총점도 같이 출력한다.
  • 최종 수익을 출력한다.
  • 최종 승패를 출력한다.

우아한테크코스 코드리뷰

About

블랙잭 미션 저장소


Languages

Language:Java 100.0%