귤게임 새 판 10만 개를 만들어 보니
귤게임은 판마다 숫자가 무작위로 깔립니다. 그렇다면 "보통의 판"에는 무엇이 들어 있을까요? 게임에 들어 있는 판 만드는 코드 그대로 PC 판 100,000개, 휴대폰 판 100,000개를 만들고, 첫 드래그 전에 터뜨릴 수 있는 묶음을 전부 세어 봤습니다.
어떻게 시뮬레이션했나
게임은 코드 한 줄로 판을 만듭니다. 칸마다 1부터 9까지 정수 하나를 똑같은 확률로, 옆 칸과 상관없이 넣습니다. 정해진 숫자 묶음을 섞는 방식이 아니어서 9가 몇 개 나온다는 보장도 없고, 다 지울 수 있는 판인지 확인하지도 않습니다. 시뮬레이션은 이 한 줄을 그대로 옮긴 뒤, 선택 네모가 판을 보는 방식 그대로 판을 살펴봅니다.
여기서 묶음은 안에 든 귤의 합이 정확히 10인 네모를 말합니다. 새 판에는 빈칸이 없어서 네모 안의 귤이 전부 선택됩니다. 그래서 두 개짜리 짝은 위아래나 좌우로 바로 붙어 있어야만 터뜨릴 수 있습니다. 네모를 조금만 키워도 세 번째 귤이 끼어들기 때문입니다. 대각선으로 붙은 두 귤을 잡으려면 2×2 네모가 필요한데, 그러면 귤 네 개가 같이 잡힙니다.
PC 판은 10줄 × 17칸(귤 170개), 화면 폭 600픽셀 이하 휴대폰 판은 12줄 × 14칸(귤 168개)입니다. 판 모양이 달라지면 가장자리에 놓이는 칸의 수가 달라지고, 가장자리는 생각보다 중요하기 때문에 둘을 따로 돌렸습니다.
새 판에는 묶음이 몇 개 있나
새 PC 판에는 합이 10인 네모가 평균 54.65개 있습니다. 판마다 차이도 생각보다 작습니다. 열 판 중 아홉 판이 45~64개 사이였고, 전체에서 가장 적은 판이 25개, 가장 많은 판이 89개였습니다. 휴대폰 판도 거의 같아서 평균 54.24개, 열 판 중 아홉 판이 45~64개였습니다.
| PC 10×17 | 휴대폰 12×14 | |
|---|---|---|
| 전체 묶음 (평균) | 54.65 | 54.24 |
| 전체 묶음 (하위 10%–상위 10%) | 45–64 | 45–64 |
| 전체 묶음 (최소 / 최대) | 25 / 89 | 26 / 90 |
| 붙어 있는 짝 (평균) | 34.77 | 34.46 |
| 붙어 있는 짝 (최소 / 최대) | 11 / 60 | 14 / 61 |
| 짝이 하나도 없는 판 | 0 | 0 |
| 처음에 어떤 묶음에도 못 들어가는 귤 | 170개 중 75.08 | 168개 중 73.9 |
눈에 띄는 숫자가 둘 있습니다. 첫째, 짝이 압도적입니다. PC 판의 첫 묶음 54.65개 중 34.77개가 붙어 있는 두 개짜리 짝입니다. 둘째, 200,000개 판 가운데 짝 없이 시작한 판은 하나도 없었습니다. 가장 빈약한 판에도 짝이 11개는 있었으니, 할 게 없는 상태로 게임이 시작되는 일은 없습니다.
분포는 30개 중반을 꼭대기로 한 종 모양입니다. 서로 상관없는 칸 170개로 된 판이라면 당연한 결과입니다. PC 판에는 위아래·좌우로 이웃한 칸의 연결이 313개 있고, 연결 하나가 짝일 확률은 81분의 9, 즉 9분의 1입니다. 313을 9로 나누면 34.8이고, 시뮬레이션 값은 34.77이었습니다. 손으로 한 계산과 시뮬레이션이 맞아떨어지니, 시뮬레이션이 제대로 세고 있다는 뜻입니다.
묶음 크기별로 보면
큰 네모도 있지만 금방 드물어집니다. 아래 표는 새 판 하나에 크기별 묶음이 평균 몇 개 있는지 센 것입니다.
| 네모 안의 귤 수 | PC (판당) | 휴대폰 (판당) | PC 전체 묶음 중 비율 |
|---|---|---|---|
| 2 | 34.774 | 34.457 | 63.6% |
| 3 | 14.113 | 14.036 | 25.8% |
| 4 | 5.153 | 5.139 | 9.4% |
| 5 | 0.496 | 0.496 | 0.9% |
| 6 | 0.11 | 0.112 | 0.2% |
| 7 | 0.003 | 0.004 | 0.0% |
세 개짜리는 판마다 14.113개쯤 있어서 찾아볼 만합니다. 네 개짜리는 5.153개 정도입니다. 다섯 개 이상은 다 합쳐도 판당 0.61개라 대부분의 첫 판에는 아예 없습니다. 게임 초반에 큰 네모를 찾는 사람은 대개 없는 것을 찾고 있는 셈입니다.
모양도 같은 흐름입니다. 새 PC 판에서 가장 흔한 네모 모양은 이렇습니다.
| 네모 모양 (줄 × 칸) | PC 판당 |
|---|---|
| 1x2 | 17.793 |
| 2x1 | 16.981 |
| 1x3 | 7.402 |
| 3x1 | 6.711 |
| 2x2 | 1.847 |
| 1x4 | 1.791 |
| 4x1 | 1.516 |
| 1x5 | 0.278 |
| 5x1 | 0.218 |
| 2x3 | 0.031 |
가로 짝과 세로 짝은 거의 같은 수만큼 나옵니다. PC에서 가로 짝이 조금 많은 건 17칸짜리 판이라 좌우 연결이 위아래 연결보다 많아서입니다. 작은 숫자 네 개로 합 10을 만드는 2×2 정사각형은 판당 1.847개쯤 나옵니다.
숫자는 똑같이 나오지만 쓸모는 다르다
PC 판에서 숫자 하나는 평균 18.91개씩 나옵니다. 균일하게 뽑으면 나와야 할 값 그대로입니다. 어떤 숫자든 귤 하나 옆에 짝이 되는 이웃이 평균 0.409개 있는 것도 같습니다. 차이는 다른 데서 납니다. 게임이 시작될 때 어떤 묶음에도 들어가지 못하는 귤의 비율입니다.
| 숫자 | PC 판당 개수 | 옆에 붙은 짝 (평균) | 처음에 묶음이 없는 비율 |
|---|---|---|---|
| 1 | 18.89 | 0.409 | 21.11% |
| 2 | 18.86 | 0.409 | 27.07% |
| 3 | 18.9 | 0.409 | 33.09% |
| 4 | 18.88 | 0.41 | 39.09% |
| 5 | 18.91 | 0.409 | 44.96% |
| 6 | 18.9 | 0.409 | 50.67% |
| 7 | 18.88 | 0.409 | 55.86% |
| 8 | 18.88 | 0.408 | 60.69% |
| 9 | 18.9 | 0.409 | 64.94% |
깔끔한 계단 모양입니다. 처음에 묶음이 없는 1은 21.11%뿐인데, 9는 64.94%입니다. 작은 숫자일수록 10을 만드는 길이 많기 때문입니다. 1은 9와 짝을 이룰 수도 있지만 1+2+7, 1+3+6, 1+4+5, 1+1+8, 그리고 더 긴 조합 여러 개에도 들어갈 수 있습니다. 9의 짝은 정확히 하나뿐입니다. 숫자가 하나 커질 때마다 선택지가 줄고, 표를 보면 한 칸 올라갈 때마다 4.3~6.0%포인트씩 늘어납니다.
9가 처음부터 고립될 확률
9에게 "묶음이 없다"는 말은 정확한 뜻이 있습니다. 맞닿은 칸 중에 1이 하나도 없다는 것입니다. 이건 확률 계산으로도 구할 수 있어서 시뮬레이션을 검증할 두 번째 방법이 됩니다. 이웃 한 칸이 1일 확률은 9분의 1이므로, 판 가운데(이웃 4칸)의 9가 고립될 확률은 (8/9)4 = 62.4%입니다. 가장자리(이웃 3칸)는 (8/9)3 = 70.2%, 모서리(이웃 2칸)는 (8/9)2 = 79.0%입니다.
| 10×17 판에서의 위치 | 칸 수 | 그 자리 9 옆에 1이 없을 확률 |
|---|---|---|
| 가운데 | 120 | 62.4% |
| 가장자리 | 46 | 70.2% |
| 모서리 | 4 | 79.0% |
| 판 전체 (가중 평균) | 170 | 64.93% |
칸 수로 가중 평균하면 판 전체로 64.93%가 나옵니다. 시뮬레이션 측정값은 64.94%였습니다. 9 세 개 중 두 개꼴로 빠져나갈 길 없이 게임을 시작한다는 뜻입니다.
실력으로도 넘을 수 없는 한계도 있습니다. 9는 반드시 1 하나와 함께만 판에서 사라질 수 있고, 1은 한 번밖에 못 씁니다. PC 판의 46.77%에서 9가 1보다 많았고, 판마다 평균 2.45개의 9는 완벽하게 플레이해도 짝지을 1이 남지 않습니다. 이번 시뮬레이션에서 가장 치우친 판에서는 9 25개가 짝이 될 1 없이 남았습니다. 1은 1+2+7 같은 조합에도 쓰이니 실제 게임에서 못 지우는 9는 이보다 더 많습니다.
플레이할 때 의미하는 것
데이터에서 세 가지를 읽을 수 있습니다. 새 판에는 할 게 없을 일이 없습니다. 짝이 늘 수십 개 있으니 초반이 느린 건 판 탓이 아니라 훑는 방법 탓입니다. 큰 네모는 초반에 드물고 빈칸이 생기면서 늘어나는데, 이 흐름은 봇 실험에서 볼 수 있습니다. 그리고 9는 판에서 가장 쓸모없는 숫자입니다. 이것을 습관으로 바꾸는 방법은 공략에 있어서 여기서는 되풀이하지 않습니다. 확률까지 붙인 전체 조합 목록은 합이 10인 조합 페이지에 있습니다.
이 숫자를 다시 만들어 보려면
이 페이지의 수치는 모두 Node.js로 돌리는 스크립트 하나, scripts/simulate.mjs에서 나왔습니다. 게임의 makeBoard 한 줄(칸마다 Math.floor(난수 × 9) + 1)을 그대로 옮기고, 브라우저 난수 대신 시드(20261020)를 고정한 난수를 써서 몇 번을 돌려도 같은 결과가 나오게 했습니다. 스크립트가 결과를 JSON 파일로 남기고 이 페이지는 그 파일로 만들어지기 때문에, 여기 있는 숫자 중 손으로 적은 것은 없습니다. 시드를 바꾸면 소수점 아래는 조금 달라지지만 결론은 그대로입니다.