귤게임 새 판 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.6554.24
전체 묶음 (하위 10%–상위 10%)45–6445–64
전체 묶음 (최소 / 최대)25 / 8926 / 90
붙어 있는 짝 (평균)34.7734.46
붙어 있는 짝 (최소 / 최대)11 / 6014 / 61
짝이 하나도 없는 판00
처음에 어떤 묶음에도 못 들어가는 귤170개 중 75.08168개 중 73.9

눈에 띄는 숫자가 둘 있습니다. 첫째, 짝이 압도적입니다. PC 판의 첫 묶음 54.65개 중 34.77개가 붙어 있는 두 개짜리 짝입니다. 둘째, 200,000개 판 가운데 짝 없이 시작한 판은 하나도 없었습니다. 가장 빈약한 판에도 짝이 11개는 있었으니, 할 게 없는 상태로 게임이 시작되는 일은 없습니다.

15–190.2%20–242.7%25–2914.5%30–3431.7%35–3931.4%40–4415.2%45–493.9%50–540.5%55–590.1%
PC 판: 시작할 때 붙어 있는 짝 수별 판 비율

분포는 30개 중반을 꼭대기로 한 종 모양입니다. 서로 상관없는 칸 170개로 된 판이라면 당연한 결과입니다. PC 판에는 위아래·좌우로 이웃한 칸의 연결이 313개 있고, 연결 하나가 짝일 확률은 81분의 9, 즉 9분의 1입니다. 313을 9로 나누면 34.8이고, 시뮬레이션 값은 34.77이었습니다. 손으로 한 계산과 시뮬레이션이 맞아떨어지니, 시뮬레이션이 제대로 세고 있다는 뜻입니다.

묶음 크기별로 보면

큰 네모도 있지만 금방 드물어집니다. 아래 표는 새 판 하나에 크기별 묶음이 평균 몇 개 있는지 센 것입니다.

네모 안의 귤 수PC (판당)휴대폰 (판당)PC 전체 묶음 중 비율
234.77434.45763.6%
314.11314.03625.8%
45.1535.1399.4%
50.4960.4960.9%
60.110.1120.2%
70.0030.0040.0%

세 개짜리는 판마다 14.113개쯤 있어서 찾아볼 만합니다. 네 개짜리는 5.153개 정도입니다. 다섯 개 이상은 다 합쳐도 판당 0.61개라 대부분의 첫 판에는 아예 없습니다. 게임 초반에 큰 네모를 찾는 사람은 대개 없는 것을 찾고 있는 셈입니다.

모양도 같은 흐름입니다. 새 PC 판에서 가장 흔한 네모 모양은 이렇습니다.

네모 모양 (줄 × 칸)PC 판당
1x217.793
2x116.981
1x37.402
3x16.711
2x21.847
1x41.791
4x11.516
1x50.278
5x10.218
2x30.031

가로 짝과 세로 짝은 거의 같은 수만큼 나옵니다. PC에서 가로 짝이 조금 많은 건 17칸짜리 판이라 좌우 연결이 위아래 연결보다 많아서입니다. 작은 숫자 네 개로 합 10을 만드는 2×2 정사각형은 판당 1.847개쯤 나옵니다.

숫자는 똑같이 나오지만 쓸모는 다르다

PC 판에서 숫자 하나는 평균 18.91개씩 나옵니다. 균일하게 뽑으면 나와야 할 값 그대로입니다. 어떤 숫자든 귤 하나 옆에 짝이 되는 이웃이 평균 0.409개 있는 것도 같습니다. 차이는 다른 데서 납니다. 게임이 시작될 때 어떤 묶음에도 들어가지 못하는 귤의 비율입니다.

숫자PC 판당 개수옆에 붙은 짝 (평균)처음에 묶음이 없는 비율
118.890.40921.11%
218.860.40927.07%
318.90.40933.09%
418.880.4139.09%
518.910.40944.96%
618.90.40950.67%
718.880.40955.86%
818.880.40860.69%
918.90.40964.94%
숫자 121.11%숫자 227.07%숫자 333.09%숫자 439.09%숫자 544.96%숫자 650.67%숫자 755.86%숫자 860.69%숫자 964.94%
PC 판: 새 판에서 어떤 묶음에도 못 들어가는 숫자별 비율

깔끔한 계단 모양입니다. 처음에 묶음이 없는 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이 없을 확률
가운데12062.4%
가장자리4670.2%
모서리479.0%
판 전체 (가중 평균)17064.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 파일로 남기고 이 페이지는 그 파일로 만들어지기 때문에, 여기 있는 숫자 중 손으로 적은 것은 없습니다. 시드를 바꾸면 소수점 아래는 조금 달라지지만 결론은 그대로입니다.

한 판 해 보기