바카라로 돌아가기

놀이터 › 바카라 › 바카라를 만들면서 걸린 두 가지

바카라를 만들면서 걸린 두 가지

바카라는 지금까지 만든 것 중에 규칙이 가장 짧습니다. 장기는 검사가 44개, 블록 실험실은 53개인데 바카라는 35개로 끝났습니다. 그런데 화면에서 두 번 막혔고, 둘 다 눈으로는 잘 안 보이는 종류였습니다.

규칙을 화면에서 떼어 놓았습니다

카드를 그리는 코드와 규칙을 섞지 않았습니다. 그래서 브라우저 없이 규칙만 20만 번 돌릴 수 있습니다.

이게 없으면 승률을 재는 것이 불가능합니다. 화면을 띄워 놓고 20만 판을 하려면 몇 달이 걸립니다. 그리지 않고 규칙만 돌리면 몇 초입니다.

검사는 35개입니다. 끗수 세기, 플레이어 규칙, 뱅커 규칙 100칸, 내추럴, 페어, 배당, 슈, 승률, 하우스 엣지로 나뉩니다.

같은 표를 두 번 쓰면 검사가 아닙니다

세 번째 카드 규칙을 검사할 때 한 가지 함정이 있습니다. 엔진에 박은 표를 그대로 가져와 비교하면 항상 통과합니다. 표가 틀려 있어도 통과합니다.

그래서 검사 쪽에는 표 대신 **카지노 규칙 문장을 그대로 옮긴 조건문**을 적었습니다. "뱅커 4면 플레이어 세 번째가 2에서 7일 때 받는다" 같은 식입니다. 서로 다른 방식으로 적은 둘을 100칸 전부 대조했습니다.

이렇게 하면 둘 중 하나가 틀렸을 때 드러납니다. 둘 다 같은 식으로 적었으면 같이 틀리고 같이 통과했을 겁니다.

첫 번째로 막힌 곳: 카드 돌리는 순서

처음에는 플레이어에게 두 장, 뱅커에게 두 장을 몰아서 돌렸습니다. 셈은 똑같이 맞습니다. 누가 어느 카드를 받는지는 그대로니까요.

그런데 실제 테이블은 플레이어, 뱅커, 플레이어, 뱅커 순으로 번갈아 돌립니다. 셈이 같아도 화면에서 깔리는 모습이 다릅니다.

검사를 짜면서 "이 카드가 플레이어한테 가야 하는데"가 안 맞아서 알았습니다. 번갈아 돌리게 고쳤습니다.

두 번째로 막힌 곳: 폰 가로에서 19픽셀

폰을 가로로 눕히면 화면 높이가 390픽셀입니다. 거기에 카드, 베팅 자리, 칩, 로드맵, 버튼을 다 넣어야 합니다.

처음에는 테이블 안에 카드·베팅 자리·칩을 절대 위치로 띄워 놨습니다. PC에서는 멀쩡했는데 폰 가로에서 겹쳤습니다.

세로 흐름으로 바꿨더니 이번에는 베팅 자리가 테이블 아래로 **19픽셀 잘려** 나갔습니다. 작은 폰에서는 49픽셀이었습니다.

화면테이블 아래 끝베팅 자리 아래 끝삐져나간 양
844 × 39019121019px
740 × 36016121049px

눈으로는 "좀 빡빡하네" 정도로만 보였습니다. 좌표를 숫자로 재고서야 알았습니다. 테이블이 내용보다 작게 눌리지 않게 하고, 빈 금액 줄이 한 줄을 통째로 먹던 것을 없애서 고쳤습니다.

고친 뒤 세 가지 화면 크기에서 다시 재서 전부 테이블 안에 들어오는 것을 확인했습니다.

알림을 어디에 띄울 것인가

결과 알림도 자리를 세 번 옮겼습니다. 화면 가운데에 띄웠더니 폰 가로에서 뱅커 베팅 자리를 덮었습니다. 카드 아래로 내렸더니 이번에는 카드를 덮었습니다.

390픽셀 높이에서는 카드와 베팅 자리 사이에 알림이 들어갈 자리가 아예 없다는 것이 계산으로 나왔습니다. 그래서 좁은 화면에서는 맨 윗줄로 올렸습니다. 머리줄은 늘 비어 있기 때문입니다.

넓은 화면에서는 원래대로 카드와 베팅 자리 사이에 둡니다. 그 사이가 충분히 비어 있어서입니다.

카드를 그림 없이 그렸습니다

카드 52장을 그림 파일로 넣으면 용량이 커지고 받아 오는 동안 기다려야 합니다. 그래서 글자와 네모로 직접 그립니다.

하트와 다이아는 빨강, 스페이드와 클럽은 검정으로 칠하되, 색만으로 구분하지 않도록 무늬를 오른쪽 아래에 크게 넣었습니다. 색을 구분하기 어려운 화면에서도 무늬로 알 수 있습니다.

카드가 깔릴 때는 옆으로 살짝 돌아가며 나타납니다. 한꺼번에 네 장이 뜨면 무엇이 언제 왔는지 모르기 때문에, 장마다 120밀리초씩 늦춰서 순서가 보이게 했습니다.

세 번째 카드를 보여 주는 시간

세 번째 카드가 나오는 판은 그 한 장이 승부를 뒤집는 경우가 많습니다. 그래서 그냥 같이 뿌리면 왜 이겼는지 모른 채 결과만 봅니다.

시점하는 일
0초양쪽 두 장씩 깔립니다
0.56초첫 점수가 뜹니다. 내추럴이면 여기서 알려 줍니다
0.9초플레이어 세 번째 (있으면)
1.4초뱅커 세 번째 (있으면)
그 뒤 0.26초결과와 배당

전부 더해도 2초를 안 넘습니다. 더 끌면 답답하고, 더 줄이면 세 번째 카드가 묻힙니다.

칩이 떨어지면

100만으로 시작해서 1천 밑으로 내려가면 다시 100만으로 채웁니다. 연습용이라 충전할 곳도 기다릴 이유도 없습니다.

여기서 한 가지를 일부러 안 넣었습니다. 광고를 보면 칩을 준다거나, 시간이 지나면 조금씩 준다거나 하는 것입니다. 그런 장치는 다시 들어오게 만들려고 넣는 것인데, 돈이 안 걸린 게임에서 굳이 그럴 이유가 없습니다.

칩과 지난 결과는 쓰시는 브라우저 안에만 저장됩니다. 서버로 보내지 않습니다.

로드맵 줄 수

구슬판과 큰길은 세로 6칸이 기본입니다. 그런데 폰 가로에서는 6칸을 넣을 높이가 안 나옵니다.

CSS로만 3칸으로 줄이면 칸이 삐져나갑니다. 화면 쪽에서 만드는 칸 수도 같이 줄여야 합니다. 화면 크기를 보고 3칸과 6칸을 바꾸게 했고, 기기를 돌리면 다시 계산합니다.

검사에도 넣었습니다. 화면 크기별로 실제 줄 수를 세서 기대값과 맞는지 봅니다.

바카라 바로 하기 바카라 세 번째 카드 규칙 전부, 표와 함께 바카라 확률과 하우스 엣지, 20만 판 돌려 잰 값 다른 게임 보기