Skip to content

Latest commit

 

History

History
62 lines (48 loc) · 2.5 KB

README.md

File metadata and controls

62 lines (48 loc) · 2.5 KB

java-blackjack

기능목록

이름 입력

  • 이름들을 입력받는다.
  • 예외
    • 중복된 이름인 경우

베팅 금액 입력

  • 베팅 금액을 입력받는다.
  • 예외
    • 숫자가 아닌 경우
    • 음수인 경우
    • 0인 경우

카드 2장씩 분배 후 공개

  • 참가자별로 모두 2장씩 분배한다.
  • 딜러는 첫 번째 카드만 공개한다.
  • 플레이어는 두 장 모두 공개한다.

참가자 카드 추가 분배

  • 플레이어의 카드 총합이 21미만인 경우, 한 장 더 받을 지 물어본다.
    • y 의 경우, 한 장 더 분배한다.
      • 지금까지 받은 카드를 공개한다.
    • n 의 경우, 턴을 종료한다.
  • 딜러는 카드의 합을 계산한다.
    • 16 이하의 경우, 한 장 더 분배한다.
    • 17 이상의 경우, 턴을 종료한다.

참가자 카드 공개

  • 참가자 모두의 카드를 공개한다.
  • 참가자가 지닌 카드의 합을 계산하여 공개한다.

승패 결과 계산

  • 딜러와 각 플레이어 사이의 승패를 계산한다.
    • 플레이어가 버스트이면 딜러가 버스트 여부와 상관없이, 딜러 승
    • 딜러나 플레이어 둘 중 한명이 버스트이면, 버스트가 아닌 사람이 승
    • 딜러와 플레이어가 둘 다 버스트가 아닌 상황
      • 카드 합이 같다면 무승부
      • 카드 합이 다르다면 합이 큰 사람이 승

최종 수익 계산

  • 딜러와 플레이어들의 최종 수익을 계산한다.
    • 버스트의 경우 베팅 금액을 모두 잃음
    • 버스트가 아니면서 카드 총 합이 더 크면 베팅 금액을 받음
      • 플레이어의 처음 두 장의 합이 21일 경우 블랙잭이 되어 베팅 금액의 1.5배를 딜러에게 받음
        • 딜러와 플레이어가 동시에 블랙잭인 경우(비긴 경우) 플레이어는 베팅 금액을 돌려받음
  • 딜러와 플레이어들의 최종 수익 출력

블랙잭 도메인 용어

  • 딜러(Dealer) : 카드를 나눠주고 게임을 진행하는 역할
  • 핸드(Hand) : 플레이어나 딜러가 받은 카드 세트
  • 히트(Hit) : 추가 카드를 요청하는 행동
  • 버스트(Bust) : 카드 합계가 21을 초과하여 패배하는 상황
  • 푸시(Push) : 플레이어와 딜러의 점수가 같아 비기는 상황
  • 하드 핸드(Hard Hand) : 에이스가 없거나 에이스를 1로만 계산해야 하는 핸드