블랙잭 미션 저장소
- BE_마루
- BE_앤지
블랙잭 게임을 변형한 프로그램을 구현한다.
블랙잭 게임은 딜러와 플레이어 중 카드의 합이 21 또는 21에 가장 가까운 숫자를 가지는 쪽이 이기는 게임이다.
카드의 숫자 계산은 카드 숫자를 기본으로 하며, 예외로 Ace는 1 또는 11로 계산할 수 있으며, King, Queen, Jack은 각각 10으로 계산한다.
게임을 시작하면 플레이어는 두 장의 카드를 지급 받으며, 두 장의 카드 숫자를 합쳐 21을 초과하지 않으면서 21에 가깝게 만들면 이긴다.
21을 넘지 않을 경우 원한다면 얼마든지 카드를 계속 뽑을 수 있다.
딜러는 처음에 받은 2장의 합계가 16이하이면 반드시 1장의 카드를 추가로 받아야 하고, 17점 이상이면 추가로 받을 수 없다.
게임을 완료한 후 각 플레이어별로 승패를 출력한다.
게임에 참여할 사람의 이름을 입력하세요.(쉼표 기준으로 분리)
pobi,jason
딜러와 pobi, jason에게 2장을 나누었습니다.
딜러: 3다이아몬드
pobi카드: 2하트, 8스페이드
jason카드: 7클로버, K스페이드
pobi는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)
y
pobi카드: 2하트, 8스페이드, A클로버
pobi는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)
n
jason은 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)
n
jason카드: 7클로버, K스페이드
딜러는 16이하라 한장의 카드를 더 받았습니다.
딜러 카드: 3다이아몬드, 9클로버, 8다이아몬드 - 결과: 20
pobi카드: 2하트, 8스페이드, A클로버 - 결과: 21
jason카드: 7클로버, K스페이드 - 결과: 17
## 최종 승패
딜러: 1승 1패
pobi: 승
jason: 패
-
참여할 사람의 이름을 입력받는다.
- 쉼표를 기준으로 이름을 분리한다.
- 예외사항
- 이름에 아무것도 들어오지 않을 때(공백)
- 쉼표만 입력 받았을 때
- 플레이어 인원이 1~8이 아닐 때
-
참여자들에게 카드를 두장씩 나누어준다.
-
참여자들은 자신의 카드를 오픈한다.
- 딜러는 한장만 오픈한다.
- 플레이어는 두장을 다 오픈한다.
-
플레이어들은 카드를 더 받을지 결정하고 출력한다.
- 플레이어의 카드의 합이 21미만일 때만 카드를 더 받을 것인지를 물어본다.
- 에이스를 가진 경우 1, 11 두 상황 다 계산하여 하나라도 가능하면 받을 수 있을지 물어본다.
- 플레이어가 y를 입력하면 카드를 더 받는다.
- 플레이어가 n을 입력하면 카드를 더 받지 않는다.
- 예외사항
- y혹은 n을 입력받지 않았을 때
- 플레이어의 카드의 합이 21미만일 때만 카드를 더 받을 것인지를 물어본다.
-
딜러의 합계가 16이하이면 16을 넘을 때 까지 카드를 계속 받는다.
-
플레이어가 가진 카드의 숫자의 합을 계산하고 출력한다.
- 에이스는 유리한쪽으로 계산한다.
-
승패를 출력하는 기능
- 딜러와 플레이어의 카드의 합이 모두 21을 초과할 경우: 플레이어 패배
- 딜러와 플레이어의 카드의 합이 같을 경우: 무승부
- 딜러만 카드의 합이 21을 초과할 경우: 플레이어 승리
- 플레이어만 카드의 합이 21을 초과할 경우: 딜러 승리
- 플레이어의 카드의 합이 21을 초과하지않으면서 딜러보다 클 경우: 플레이어 승리
- 딜러는 모든 플레이어에 대해 승패의 합을 출력한다.
- 플레이어는 딜러를 기준으로 승패를 출력한다.
-
배팅 기능
- 플레이어에게 배팅금액을 입력받는다.
- 플레이어 처음 두 장의 카드 합이 21일 경우 블랙잭이 되면 베팅 금액의 1.5 배를 딜러에게 받는다.
- 딜러와 플레이어가 모두 동시에 블랙잭인 경우 플레이어는 베팅한 금액을 돌려받는다.
- 카드를 추가로 뽑아 21을 초과할 경우 배팅 금액을 모두 잃게 된다. 즉, 플레이어 패배
- 배팅금액 계산 룰
- 플레이어가 100원을 걸어 이기면 200원을 받는다. 즉 100원의 수익.
- 플레이어가 100원을 걸어 지면 100원을 잃는다. 즉 수익은 -100원
- 플레이어가 100원을 걸었을 때, 딜러와 플레이어 모두 블랙잭이면 100원을 돌려받는다. 0원의 수익
- 플레이어가 100원을 걸었을 때, 플레이어만 블랙잭이면 100원*1.5 = 150원의 돈을 딜러에게 받는다.
- 딜러 수익: -150원
- 플레이어의 수익: 150원
- 무승부인 경우 배팅금액을 돌려받는다. 즉 수익은 0원.
- 힛(Hit)
- 처음 2장의 상태에서 카드를 더 뽑는 것을 의미한다.
- 21이 되지 않는 한 원하는 만큼 카드를 더 뽑을 수 있다.
- Dealer's hit rule
- 딜러의 카드의 합이 21을 초과하여 버스트가 되어버린 경우
- 버스트(Bust)
- 카드 총합이 21을 넘는 경우 이를 Bust라고 한다.