[Console] 블랙잭
C 언어 실습
문제
☆ 블랙잭 게임 ☆
- 카드의 숫자는 아래와 같이 생각합니다.
A 2 3 4 5 6 7 8 9 10 J Q K
1 2 3 4 5 6 7 8 9 10 10 10 10
♤ ♡ ♧ ◇ 를 모두 사용하기 때문에 총 52장으로 구성되어 시작합니다.
룰
1. 딜러와 플레이어가 존재합니다.
2. 게임 시작시 플레이어만 카드 두장을 받습니다. ex ) 5 , J(10)
3. 받은 카드의 숫자의 합을 계산합니다. ex ) 5 + J(10) = 15
4. 플레이어는 계산한 합이 21을 넘지 않는다면 카드를 한장 더 받을 수 있습니다.
- 카드를 더 받을 경우
플레이어가 카드를 더 받는다면 가지고 있는 카드의 합을 다시 계산합니다.
ex ) 5 + J(10) + 3 = 18
역시 21을 넘지 않는다면 계속해서 받을 수 있고 스탑또한 가능합니다.
받은 카드의 숫자의 합이 21을 넘게 된다면 바로 패배합니다.
ex ) 5 + J(10) + 7 = 22 (패배)
5. 카드를 받지 않는다면 스탑후 딜러와 대결을 시작합니다.
6. 대결을 시작한다면 이 때부터 딜러가 카드를 뽑기 시작합니다.
7. 딜러는 카드의 합이 17이 넘을 때 까지 카드를 뽑습니다.
ex ) Player의 합 (18) / Dealer : 10 + 6 = 16;
1. Player의 합 (18) / Dealer : 10 + 6 + 3 = 19 (딜러 승리)
2. Player의 합 (18) / Dealer : 10 + 7 + 5 = 22 (플레이어의 승리)
8. 위의 예시와 같이 딜러가 카드를 뽑아 21을 넘기전에 플레이어의 카드의 합보다
커지게 된다면 딜러의 승리이며 21을 초과하게 된다면 플레이어가 승리합니다.
- 즉 블랙잭은 21을 초과하지 않는 선에서 21과 가장 가까운 합이 나온 사람이 승리하는 게임입니다.
특별한 규칙
- 1. 21이 나오게 된다면 해당은 블랙잭이며 바로 승리하게 됩니다.
- 2. 1 을 뽑게된다면 1은 1 혹은 11로 사용하실 수 있습니다.
ex ) 1 + 10 = 21 or 1 + 10 = 11
- 3. J Q K 는 모두 10으로 생각합니다.
- 4. 같은 숫자는 4장을 초과해서는 안됩니다.
학습
1. 셔플 알고리즘 복습: Knuth Shuffle
2. Dealer의 에이스 카드 선택 방식 구현
3. 구현, 시뮬레이션
4. 설계도 작성
댓글남기기