2012년 3월 5일 월요일

C 연습예제 3. 바카라


C에선 텍스트로 게임을 진행하는 것을 만들수 밖에 없다. 하지만 2D 게임을 만들때 이런 연습은 도움이 될 것이다.
2D 게임에선 이런것이 그림이 더해지는 것이니까....

바카라 룰

바카라는 쉽게 홀. 짝과 비슷한 게임이다. 둘 중에 하나를 고르면 되는 것이다. 여기선 3개..  하지만 약간의 룰이 있다.
PLAYER 와 BANKER 로 나뉘게 된다. 카드 점수 계산은 2 ~ 9 까지는 그대로 사용하고 10, J, Q, K 는 0 점. A 는 1점으로 계산한다.
승리 조건은 10 에 가까운 쪽이 승리를 하게 된다.    일단 카드 두장을 BANKER 와 PLAYER 에게 준다.
BANKER 가 컴퓨터 PLAYER 가 자신이 아니다. 나는 BANKER 와 PLAYER 한쪽을 선택해 돈을 배팅하는 것이다. TIE(무승부)도 있다.

* PLAYER 룰
카드 2장의 합계가 1, 2, 3, 4, 5, 0 일때는 세번째 카드를 받는다.    // ex 5 와 6을 받으면 합계가 1 이므로 다시 받는다.
카드 2장의 합계가 6, 7 일경우 세번째 카드를 받지 않는다.            // 이를 "스탠드" 라 한다. PLAYER는 카드를 받지 않고 승부를 겨룬다.
카드 2장의 합계가 8, 9 일경우 그대로 승부를 결정한다.               // 이를 "내츄럴" 이라 한다. PLAYER. BANKER 모두 카드를 받지 않고 승부를 겨룬다.

* BANKER 룰
1. 카드 2장의 합계가 0, 1, 2 일때 카드를 한장 더 받는다.

2. 카드2장의 합계가 3일때
    PLAYER 의 3번째 카드가 1, 2, 3, 4, 5, 6, 7, 9, 0 이면 BANKER 는 3번째 카드를 받는다.    ( 8이 아닐때 받는다 )
    다만 PLAYER의 세번째 카드가 8일때는 3번째 카드를 받을 수 없다

3. 카드 2장의 합계가 4일때
    PLAYER 의 3번째 카드가 2, 3, 4, 5, 6, 7 이면 BANKER 는 3번째 카드를 받는다.
    PLAYER 의 3번째 카드가 1, 8, 9, 0 일때는 BANKER 는 3번째 카드를 받지 않는다.

4. 카드 2장의 합계가 5일때
     PLAYER 의 3번째 카드가 4, 5, 6, 7 이면 BANKER 는 3번째 카드를 받는다.
     PLAYER 의 3번째 카드가 1, 2, 3, 8, 9, 0 일때는 BANKER 는 3번째 카드를 받지 않는다.

5. 카드 2장의 합계가 6일때
     PLAYER 의 3번째 카드가 6, 7 이면 3번째 카드를 받는다.
     PLAYER 의 3번째 카드가 0, 1, 2, 3, 4, 5, 8, 9 일때는 3번째 카드를 받지 않는다.
    
6. 카드 2장의 합계가 7일때는 이를 "스탠드" 라고 하며 카드를 받지 않고 승부를 겨룬다.

7. 카드 2장의 합계가 8일때는 이를 "내츄럴" 이라 하며 PLAYER 와 BANKER 모두 카드를 받지 않고 승부를 겨룬다.


PLAYER 경우 좀 단순한것 같지만 BANKER 의 경우 체크해줄 부분이 좀 필요하다. 둘중 누구라도 내츄럴이 나오게 되면 바로 승부를 하는 것이다.
또한 약간의 조건이 포함되어 있다. 카드는 A, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K  이렇게 14장 X 4   = 52 장으로 게임을 진행한다.
프로그램을 만들때는 이 52장을 섞어서 랜덤으로 PLAYER 와 BANKER 에게 주면 된다.  52장이니 똑같은 숫자가 4개씩 들어있어야 한다. 넘어가거나 적어서는 안된다.

*돈 계산 방법
PLAYER 측이 이겼을 경우 배팅한 금액만큼 돈을 받는다.
BANKER 측이 이겼을 경우 BANKER 쪽이 승률이 원래 높기 때문에 BANKER 에 금액을 배팅할 경우 배팅금액의 95 % 만 받게 된다.
TIE (무승부)도 있다. TIE 에 돈을 배팅했을 경우 배팅금액의 80 %를 받게 된다.

간단한 카드게임이지만 약간의 룰들이 있기 때문에 좋은 연습이 되지 않을까 싶다..

댓글 없음:

댓글 쓰기