블랙잭 미션 저장소
이름 받기 -> 배팅금액 받기 -> 기본 카드 공개 -> 플레이어 카드 추가 여부 -> 딜러 추가 카드 여부 -> 카드 및 점수 출력 -> 최종 승패 출력
-
이름 받기
- 쉼표 기준으로 받기
-
[예외]
플레이어 이름은 공백이 아니어야한다.
-
플레이어 별 배팅 금액 받기
- 배팅 금액은 음수가 아니어야한다.
- 숫자여야한다.
-
플레이어 카드 추가 여부
- y또는 n으로만 입력 받기
- y일 경우에는 카드 한장 더 추가 및 추가 여부 물어보기
- n일 경우에는 카드 그만 받기
-
[예외]
y또는 n 이외의 값이 들어왔을 경우
-
기본 카드 공개
- 플레이어와 딜러에게 카드 2장 지급
- 플레이어는 카드 2장 출력
- 딜러는 1장만 출력
-
카드 및 점수 결과 출력
- 최종 수익 출력
- 딜러의 수익
- 플레이어의 수익
- 끗수는 A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K로 이루어져 있다.
- 끗수는 각각 고유한 이름을 가지고 있다.
- 끗수는 각각 가중치를 가지고 있다.
- 끗수는 가중치를 조회할 수 있다.
- 점수 합계를 계산해서 반환한다.
- ACE 가 포함될 경우,
ACE의 점수는 1과 11 중 하나를 사용
해서 블랙잭(21점)에 가까운 점수로 반환한다.
- ACE 가 포함될 경우,
- 무늬는 (스페이드, 하트, 다이아, 클로버) 4가지 종류로 이루어져 있다.
- 무늬 이름을 조회할 수 있다.
카드는 (A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K) Denomination 과 (스페이드, 하트, 다이아, 클로버)라는 suit 를 가진다.
- 카드 앞자리는 (스페이드, 하트, 다이아, 클로버)라는 suit로 이뤄진다.
- 카드 뒷자리는 (A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K) Denomination 으로만 이뤄진다.
- 카드의 점수를 조회할 수 있다.
- Denomination 과 suit 가 모두 조합된 카드 52장을 만든다.
-
[예외]
조합된 카드는 유일해야 한다. (Set 활용)
카드 List 를 표현하기 위한 일급 컬렉션이다. 최소 2장을 갖는다.
- 카드를 받아 List에 추가한다.
- 카드들의 총점을 계산해서 반환한다.
게임에서 사용되는 카드 52장을 가진 카드 뭉치이다.
- 카드 52장을 가진다.
- 카드를 한장 씩 뽑을 수 있다.
-
[예외]
덱이 비어있는 경우 에러를 던진다.
블랙잭 게임의 참가자이다.
- 플레이어는 이름을 가질 수 있다.
- 플레이어는 최소 두장의 카드를 가질 수 있다.
- 가진 카드의 총점을 계산하여 반환한다.
- 플레이어의 총 점수가 21점 이하인 경우 hit가 가능하다.
- 플레이어는 카드를 받아 합칠 수 있다.
-
[예외]
1명 이상이어야한다.
블랙잭 게임의 진행자이다.
- 딜러라는 이름을 가진다.
- 딜러는 최소 두장의 카드를 가질 수 있다.
- 가진 카드의 총점을 계산하여 반환한다.
-
딜러의 A 는 Bust 가 되기 전까지는 11로 계산한다.
- 딜러의 점수가 16점 이하인 경우 카드를 받을 수 있다.
- 딜러는 카드를 받아 합칠 수 있다.
-
최초의 2장의 합이 21일 떄만 블랙잭이다.
-
플레이어들의 승패 여부
- 플레이어 점수가 21 이하이고, 딜러 점수보다 크면 승리한다.
- 플레이어 점수가 21 이하이고, 딜러 점수보다 작으면 패배한다.
- 플레이어와 딜러 모두 Bust 이면 플레이어가 패배한다.
- 플레이어가 Bust 이면 패배이다.
- 딜러와 플레이어 점수가 같으면 무승부이다.
-
딜러의 전적
- 딜러 점수가 21 이하이고, 플레이어 점수보다 크면 승리한다.
- 딜러 점수가 21 이하이고, 플레이어 점수보다 작으면 패배한다.
- 플레이어와 딜러 모두 Bust 이면 딜러가 승리한다.
- 딜러가 Bust 이면 패배이다.
- 딜러와 플레이어 점수가 같으면 무승부다
- 딜러
- Bust 이면 Bust 가 아닌 플레이어 배팅 금액 만큼 차감
- 승리하면 플레이어의 배팅 금액을 얻는다.
- 패배하면 플레이어의 배팅 금액만큼 차감
- 블랙잭이면 블랙잭이 아닌 플레이어의 모든 배팅 금액을 얻음
- 무승부이면 아무런 변화 없음 (딜러와 플레이어 동시에 블랙잭일 때도)
- 플레이어
- Bust 이면 배팅 금액을 잃는다.
- 패배하면 배팅 금액을 잃는다.
- 승리하면 배팅 금액을 얻는다.
- 블랙잭이면 배팅 금액의 1.5배를 받는다.
-
플레이어 이름을 입력받음
-
플레이어 별 베팅금액을 입력 받음
-
카드를 2장씩 나눠가짐
-
플레이어 별 카드를 더 받을 건지
-
딜러의 카드 합이 17 이상이 될 때까지 카드를 받음
-
총 점 계산
-
최종 수익 산출
- 플레이어가 카드를 다 받은 뒤 딜러의 카드 합이 16이하면 한장을 추가로 받는다. (17이상이면 안받음)
- 논의사항 : 안받을 경우
안내메시지(딜러는 17이상이라 카드를 받지 않았습니다.)
메세지를 출력해야하는가?
- 논의사항 : 안받을 경우
- A,8,3 일 경우 블랙잭
- A를 어떻게 처리해야 하는가?
- 페어 프로그래밍 체인지 타임 (10분)
- 페어와 헤어지는 시점 (목요일 00시)
- 코드 컨벤션
- 커밋 작성 방법(한글)
- 프로그램 설계 방법
- 매일 저녁 하루 회고~~