Skip to content

Latest commit

 

History

History
66 lines (58 loc) · 3.07 KB

README.md

File metadata and controls

66 lines (58 loc) · 3.07 KB

kotlin-blackjack


블랙잭

요구 사항 분석

  • 입력

    • 게임에 참여할 사람을 입력받는다.
    • 한장의 카드를 더 받을지 말지 입력받는다.
    • 플레이어의 배팅 금액을 입력받는다.
  • 출력

    • 플레이어가 가지고 있는 카드를 출력한다.
    • 게임의 결과를 출력한다.
      • 각 플레이어 별로 승패를 출력한다.
  • 도메인

    • 카드가 있다.
      • 카드는 숫자와 무늬를 가진다.
      • Ace, King, Queen, Jack 이라는 카드도 있다.
    • 카드 덱이 있다.
      • 카드 덱은 총 51장의 카드를 가진다.
    • 플레이어가 있다.
      • 플레이어는 이름을 가진다.
      • 플레이어는 카드를 가질 수 있다.
    • 블랙잭 게임이 있다.
      • 게임 시작시 두 장의 카드를 지급받는다.
      • 플레이어는 가지고 있는 카드가 21을 넘지 않은 경우 카드를 계속 뽑을 수 있다.
      • 딜러는 플레이어들이 전부 카드를 뽑은 뒤에 카드를 뽑는다.
        • 딜러가 21을 초과하면 그 시점까지 남아 있던 플레이어들은 패에 상관없이 승리한다.
    • 블랙잭 점수 계산기가 있다.
      • Ace는 1 또는 11로 계산할 수 있다.
      • King, Queen, Jack 는 10으로 계산한다
      • 플레이어의 카드를 점수로 계산해 결과를 내보낸다
    • 딜러가 있다.
      • 딜러는 처음에 받은 2장의 합계가 16이하라면 반드시 한장의 카드를 받는다.
        • 16점 이하면 계속 카드를 뽑는다.
      • 17점 이상이면 카드를 추가로 받을 수 없다.
    • 상태라는 클래스가 있다.
      • 히트라는 상태가 있다
        • 히트는 먼저 받은 두 장의 합이 21에 못미치는 경우다.
      • 버스트라는 상태가 있다.
        • 버스트는 카드 총합이 21을 넘은 경우다.
        • [] 카드를 추가로 뽑아 21을 초과하는 경우 배팅 금액을 모두 잃는다.
        • [] 딜러가 버스트라면 남아 있는 플레이어들은 베팅 금액을 받는다.
      • 스탠드라는 상태가 있다.
        • 스탠드는 더 이상 카드를 뽑지 않는 경우다.
      • 블랙잭 이라는 생태가 있다.
        • 처음 받은 두 장의 카드의 총 합이 21이 되는 경우이다.
        • [] 베팅 금액의 1.5배를 딜러에게 받는다.
        • [] 딜러와 플레이어 동시에 블랙잭인 경우 플레이어는 베팅한 금액을 돌려받는다.

용어 정리

  • 버스트(Bust)
    • 카드 총합이 21을 넘은 경우
      • 플레이어가 버스트 당하면 패배가 확정된다.
      • 딜러가 버스트 당하면 그 시점까지 남아있는 모든 플레이어가 승리한다.
  • 블랙잭(Blackjack)
    • A한장과 10, J, Q, L 로 21을 이루는 경우 베팅 금액의 1.5배를 돌려준다.
  • 히트(Hit)
    • 먼저 받은 두 장의 합이 21에 못미치는 경우
  • 스탠드(Stand)
    • 더 이상 카드를 뽑지 않고 넘어간 경우