블랙잭 미션 저장소
- Deck : 카드 1묶음. 52장의 모든 카드를 지칭
- CardDeck : 셔플된 여러 개의 Deck
- Hit : 카드를 더 뽑는 것
- Stay : 카드를 더 뽑지 않고 차례를 마치는 것
- Blackjack : 처음 두 장의 카드 합 21이 되는 것
- Burst : 21점 초과로 게임 오버 되는 것
- Push : 무승부. 딜러와 플레이어의 점수가 동일
- 처음에 받은 2장의 합계가 16점 이하이면 카드를 1장 획득
- 플레이어 등록
- 플레이어는 1명 이상
- 플레이어 이름 중복 불가
- 플레이어 이름 빈 값 불가
- 딜러 이름 불가(딜러 or dealer)
- 21을 넘지 않을 때까지 Hit 가능
-
게임 준비
- 게임 시작 시 딜러와 플레이어에게 카드 2장 지급
-
게임 진행
- 각 플레이어에게 추가 카드 지급
- 최초 딜러의 카드 합이 16점 이하이면 카드를 1장 지급
-
게임 종료
- 카드 합이 21 또는 21에 가깝게 스코어 계산
- Ace는 11로 계산 가능
- 카드 합이 21 또는 21에 가깝게 스코어 계산
-
수익 계산
- 플레이어의 승무패 결과에 따라 수익 계산
- BLACKJACK_WIN : 플레이어가 블랙잭으로 이긴 경우 - 배팅 금액 * 1.5배
- WIN : 플레이어가 블랙잭이 아닌 다른 패로 이긴 경우 - 배팅 금액 * 1배
- LOOSE : 플레이어가 진 경우 - 배팅 금액 * -1배
- PUSH : 비긴 경우 - 배팅 금액 * 1배
- BLACKJACK_WIN
- 플레이어 blackjack, 딜러 notBlackjack
- WIN
- 플레이어 notBurst, 딜러 burst
- 플레이어 notBurst, 딜러 notBurst, 플레이어 > 딜러
- LOOSE
- 플레이어 burst
- 플레이어 notBurst, 딜러 notBurst, 플레이어 < 딜러
- PUSH
- 플레이어 blackjack, 딜러 blackjack
- 플레이어 notBurst, 딜러 notBurst, 플레이어 = 딜러
- 카드 생성
- 숫자와 모양을 가짐
- 숫자는 2~10와 A,J,K,Q 중 하나
- 모양은 하트,클로버,다이아,스페이드 중 하나
- 카드 숫자 합 계산
- King, Queen, Jack은 각 10으로 계산
- Ace는 1로 계산
- 덱의 개수만큼 덱을 생성하여 셔플
- 덱의 개수 1 미만 불가
- 카드 1장 뽑기
-
게임에 참여할 사람 이름 입력
- 이름은 쉼표를 기준으로 분리
- 이름 앞 뒤 공백 제거
-
참가자 별 배팅 금액 입력
- 0보다 큰 정수만 입력
- 10원 단위로 입력
-
Hit 여부 입력
- y 와 n 이외의 문자 입력
-
올바른 입력이 들어올 때까지 재입력
- 처음 받은 카드 2장 출력
- Hit 후 보유한 카드 출력
- 딜러의 카드 획득 여부 출력
- 최종 카드 현황 및 점수 출력
- 최종 수익 출력