본문으로 건너뛰기
bobob

게임 가이드게임 공략 · 26/27

탑 쌓기 퍼펙트 타이밍 오차와 층수

탑 쌓기에서 누르는 위치가 몇 px 어긋나면 층수가 얼마나 줄어드는지, 엔진을 그대로 돌린 봇 2,000판으로 오차별 평균 층수와 퍼펙트 비율을 비교했습니다.

Bob7분 읽기

핵심 요약

  • 오차가 ±10px 이하인 봇은 2,000판 모두 200층 상한까지 올라갔고 평균 층수는 ±12px에서 169.5층, ±15px에서 44.7층, ±20px에서 23.5층이었습니다
  • 층수가 꺾이는 곳은 ±11~14px 사이로 오차가 3px 늘 때 평균이 197.5층에서 61.5층으로 내려갔고 퍼펙트 비율은 71.1%에서 50.8%로 줄었습니다
  • 시간으로 바꾸면 ±20ms까지는 상한에 닿았지만 ±40ms는 평균 75.3층이었고 블록이 빨라질수록 같은 ms 오차가 더 큰 px 오차가 됩니다
목차

탑 쌓기에서 누르는 위치가 얼마나 정확해야 높이 올라갈까요. 이 글에서 엔진을 그대로 불러 오차를 준 봇을 2,000판씩 돌렸더니, 오차가 ±10px 이하인 봇은 2,000판 모두 200층 상한까지 올라갔고 ±15px에서는 평균 44.7층, ±20px에서는 23.5층이었습니다. 오차가 조금 줄 때마다 층수가 조금씩 느는 것이 아니라 어느 지점에서 한꺼번에 뛰었습니다. 아래에서는 규칙, 계산 조건, 오차별 결과, 시간(ms)으로 바꾼 결과를 차례로 적었습니다. 봇은 사람과 같지 않습니다.

한눈에 보기

누르는 위치 오차평균 층수퍼펙트 비율54층 이상
±10px200.0층(상한)78.2%100%
±12px169.5층64.6%92.8%
±14px61.5층50.8%44.4%
±15px44.7층45.3%21.6%
±20px23.5층31.4%0.1%
±30px13.7층20.4%0%

우리 게임의 규칙

규칙은 engine.ts와 meta.ts에서 확인했습니다.

  • 시작 폭은 200이고, 화면 폭은 360입니다. 움직이는 블록은 맨 위 블록 가운데에서 양쪽으로 140만큼 오갑니다. 층마다 왼쪽과 오른쪽에서 번갈아 출발합니다.
  • 속도는 첫 층에서 초당 150이고 층마다 5씩 올라, 54층에서 초당 420에 닿은 뒤 그대로입니다.
  • 떨어뜨리면 아래 블록과 겹친 부분만 남고 튀어나온 부분은 잘려 떨어집니다. 다음 블록은 남은 폭으로 나옵니다.
  • 퍼펙트는 양쪽 끝이 모두 아래 블록의 4 + 속도 ÷ 100 안에 들어올 때입니다. 첫 층에서 5.5, 10층에서 6, 54층 이후 8.2입니다. 이때 블록은 아래 블록에 딱 맞춰지고 잘리는 부분이 없습니다. 시간으로 치면 첫 층에서 오차 허용이 위아래로 약 37ms, 최고 속도에서 약 20ms입니다.
  • 퍼펙트를 두 번째로 이어 가면 그때마다 폭이 8씩 되살아납니다. 처음 폭인 200은 넘지 않습니다. 컷이 한 번이라도 나면 연속은 0으로 돌아갑니다.
  • 겹침이 1보다 작으면 한 층도 못 쌓고 끝납니다. 층수가 곧 기록이고 층수 제한은 코드에 없습니다.

계산 조건

  • 엔진: engine.ts의 createTower, drop, topBlock, speedFor를 Node.js에서 그대로 불러 썼습니다. 엔진은 고치지 않았습니다.
  • 봇: 매 층 움직이는 블록의 왼쪽 끝을 아래 블록의 왼쪽 끝에 딱 맞추려 하고, 거기에 균등 분포의 무작위 오차를 더해 떨어뜨립니다. 오차는 ±e px 안에서 같은 확률로 나옵니다. 폭이 같은 블록이므로 왼쪽 끝이 맞으면 오른쪽 끝도 맞습니다.
  • 판 수: 오차마다 2,000판입니다. 시드 번호는 1000번부터 2999번까지이고 모든 오차가 같은 시드를 썼습니다.
  • 상한: 200층에서 멈췄습니다. 그래서 200.0층이라고 쓴 칸은 실제 평균이 그 이상이라는 뜻이고, 이 숫자들끼리는 비교할 수 없습니다. 200은 제가 정한 값이고 게임의 상한이 아닙니다.
  • 퍼펙트 비율은 쌓은 층 중 퍼펙트였던 층의 비율입니다. 마지막에 실패한 드롭은 층수에 들어가지 않습니다.
  • 한계: 사람의 실수는 균등하지 않고 매번 독립도 아닙니다. 사람은 졸리면 한쪽으로 치우치고, 봇은 어디서 눌러야 하는지 정확히 알고 있습니다. 이 글의 오차는 사람의 손가락 오차가 몇 px라는 뜻이 아닙니다.

오차가 줄면 층수는 어떻게 느는가

누르는 위치 오차가 클수록 봇의 평균 층수가 줄어드는 선 그래프. ±10px 이하는 200층 상한, ±12px은 169.5층, ±14px은 61.5층, ±20px은 23.5층, ±40px은 9.8층
누르는 위치 오차가 클수록 봇의 평균 층수가 줄어드는 선 그래프. ±10px 이하는 200층 상한, ±12px은 169.5층, ±14px은 61.5층, ±20px은 23.5층, ±40px은 9.8층
오차(±px)평균 층수중앙값퍼펙트 비율54층 이상100층 이상
6200.0(상한)20099.8%100%100%
8200.0(상한)20096.0%100%100%
10200.0(상한)20078.2%100%100%
11197.520071.1%99.2%98.3%
12169.520064.6%92.8%82.1%
13103.58357.9%71.4%42.5%
1461.55050.8%44.4%12.4%
1544.73945.3%21.6%2.2%
1731.73038.1%2.7%0%
2023.52231.4%0.1%0%
2517.21724.8%0%0%
3013.71320.4%0%0%
409.81015.4%0%0%

표를 읽는 법은 세 가지입니다.

  1. ±10px 안쪽은 끝이 없습니다. 퍼펙트가 계속 나오면 폭이 되살아나고, 컷이 나도 줄어드는 폭이 작아서 퍼펙트가 이어지면 다시 채워집니다. 이 구간의 층수는 봇이 아니라 제 상한이 정했습니다.
  2. ±11~14px에서 꺾입니다. 오차가 3px 늘었을 뿐인데 평균은 197.5층에서 61.5층으로, 100층 이상 비율은 98.3%에서 12.4%로 내려갔습니다. 컷이 한 번 날 때 줄어드는 폭의 평균이 오차의 절반이고, 이만큼 큰 오차에서는 퍼펙트가 두 번 이어져 폭을 되돌리기 전에 다시 컷이 납니다. 이 설명은 제 추측이고 수식으로 증명하지 않았습니다. 확인한 것은 숫자가 이 구간에서 꺾인다는 것까지입니다.
  3. ±20px 위에서는 완만하게 바닥으로 갑니다. 평균 23.5층에서 9.8층 사이이고, 오차가 더 커져도 층수 차이는 몇 층 단위입니다. 그래프가 바닥에서 평평해집니다.

퍼펙트 비율만 보면 오차 6에서 99.8%, 12에서 64.6%로 서서히 줄어듭니다. 층수는 훨씬 가파르게 꺾이기 때문에 퍼펙트 비율이 60%대라는 느낌만으로 안심하기는 이릅니다.

시간(ms)으로 바꾸면

화면의 px 오차는 속도에 비례해 커집니다. 같은 손가락 타이밍이라도 블록이 빠르면 더 멀리 어긋납니다. 이를 보려고 오차를 ms로 주었습니다. 오차를 ±t ms 안에서 균등 무작위로 뽑고, 그 층의 속도를 곱해 px로 바꾼 값을 더했습니다. 나머지 조건은 위와 같습니다. 같은 시드 2,000판입니다.

오차(±ms)평균 층수퍼펙트 비율54층 이상100층 이상
20200.0(상한)98.2%100%100%
30185.070.1%100%98.0%
35108.064.3%100%52.7%
4075.359.7%96.5%6.9%
5052.051.5%39.0%0%
6040.645.6%3.4%0%
8028.636.7%0%0%
12018.526.4%0%0%

±30ms에서 ±40ms로 늘면 평균이 185.0층에서 75.3층으로 줄었습니다. 앞의 px 표와 같은 꺾임이 시간으로도 보입니다. 이 표에서 꺾이는 지점은 ±30~40ms입니다. 속도가 54층까지 계속 오르니 초반에는 ±30ms가 px로 4.5 정도지만, 54층 이후에는 12.6px입니다. 높이 올라갈수록 같은 반응 시간이 더 큰 오차가 된다는 뜻입니다. 이 글은 사람의 반응 시간 분포를 따로 재지 않았으니, 자신의 오차가 몇 ms인지는 이 표로 알 수 없습니다.

흔한 실수

  1. 블록 가운데를 보기. 퍼펙트는 양쪽 끝이 맞아야 합니다. 앞쪽 모서리가 아래 블록 모서리와 겹치는 순간을 보세요.
  2. 폭이 좁아졌을 때 욕심내기. 컷이 나면 연속이 0으로 돌아갑니다. 폭이 되살아나려면 퍼펙트가 두 번 이어져야 합니다.
  3. 빨라지는 속도 무시하기. 10층까지는 초당 200 정도지만 54층부터는 420입니다. 같은 오차가 두 배 가까운 px 차이가 됩니다.
  4. 한 번의 컷에 흔들리기. 컷이 난 직후에는 다음 드롭을 퍼펙트로 만드는 것이 우선입니다. 퍼펙트가 두 번 이어져야 폭이 되살아납니다.
  5. 화면 가운데 기준으로 누르기. 블록은 맨 위 블록 가운데를 기준으로 오갑니다. 탑이 옆으로 기울어도 그쪽을 보세요.

연습 방법

  • 10층까지 퍼펙트만 노리기. 속도가 낮은 구간에서 모서리를 보는 감각을 만들 수 있습니다.
  • 눈 대신 리듬으로 누르기. 블록은 같은 구간을 오가고, 같은 층에서는 속도가 일정합니다. 한 왕복을 박자로 세면서 눌러 보세요.
  • 컷이 난 방향 기록하기. 한쪽으로만 컷이 난다면 누르는 시점이 늘 빠르거나 늦은 겁니다. 방향이 바뀌면 오차가 무작위에 가깝습니다.
  • 54층을 목표로 삼기. 54층 이후는 속도가 같습니다. 거기까지 오면 리듬을 한 번만 맞춰 두면 됩니다.
  • 한 판을 짧게 쉬며 하기. 졸리면 오차가 한쪽으로 치우칩니다. 이 글의 봇은 그런 흔들림이 없습니다.

정리

  • 오차가 ±10px 이하인 봇은 2,000판 모두 200층 상한까지 올라갔고 ±15px에서는 평균 44.7층, ±20px에서는 23.5층이었습니다.
  • 층수가 꺾이는 곳은 ±11~14px입니다. 오차를 3px 줄이면 평균이 61.5층에서 197.5층으로 늘었습니다.
  • 시간으로는 ±20ms까지 상한에 닿았고 ±40ms에서는 평균 75.3층이었습니다. 속도가 오를수록 같은 ms가 더 큰 px입니다.
  • 모든 숫자는 균등 무작위 오차를 준 봇의 값입니다. 사람이 몇 층까지 가는지는 보여 주지 않습니다.

참고 자료

  • 이 글의 규칙과 숫자는 외부 자료가 아니라 이 사이트의 탑 쌓기 엔진(apps/main/src/features/games/tower-stack/engine.ts)과 게임 설명(meta.ts)을 직접 읽고 실행해 얻은 값이며, 2026년 10월 1일 기준 코드로 계산했습니다. 엔진 규칙이 바뀌면 값도 달라질 수 있습니다.
  • 같은 방식으로 엔진을 돌려 비교한 다른 게임 가이드는 가격 정하기 10일에서 이익이 가장 큰 가격 찾기에 있습니다.

도움이 됐다면 공유해 주세요

글쓴이

Bob

개발자로 일하면서 경제 지표와 시장 데이터를 직접 찾아보고 정리해 왔습니다. 공식 통계와 1차 자료를 기준으로, 처음 보는 사람도 흐름을 따라올 수 있게 씁니다.

운영 원칙 보기

게임 공략

27편
  1. 2048 모서리 전략과 뱀 모양 배열
  2. 지뢰찾기 1-2-1 패턴과 확률 계산
  3. 스도쿠를 찍지 않고 푸는 기본 기법
  4. 숫자야구는 몇 번 만에 맞힐 수 있을까
  5. 오목 열린 3과 4-3 공격, 첫 수와 금수 정리
  6. 솔리테어 잘 푸는 습관 다섯 가지
  7. 사과 게임, 짝부터 지울까 크게 묶을까
  8. 블록 쌓기, 4줄 한 번에와 연속 지우기 중 무엇이 점수가 클까
  9. 블록 끼우기에서 오래 버티는 배치
  10. 벽돌깨기, 패들 어디에 맞히느냐가 점수를 가릅니다
  11. 버블 팡, 터뜨리기보다 떨어뜨리기가 큰 이유
  12. 파닥파닥 비행, 틈 가운데보다 어디를 노려야 할까
  13. 과일 합치기에서 어디에 떨어뜨려야 점수가 오를까
  14. 보석 맞추기, 아래부터 맞추면 정말 점수가 오를까
  15. 동네 가게 키우기, 회수 기간 순서로 사면 얼마나 빨라질까
  16. 카드 짝 맞추기 어려움 판을 24번 안에 끝내려면
  17. 도시 방어, 탄두보다 얼마나 앞을 찍어야 할까
  18. 네모로직을 찍지 않고 푸는 줄 읽기 기법
  19. 가격 정하기 10일에서 이익이 가장 큰 가격 찾기
  20. 반응속도 테스트, 찍어서 누르면 왜 손해일까
  21. 길 건너기에서 오래 살아남는 법, 봇 2,000판으로 비교
  22. 색 순서 기억하기, 10단계를 넘기는 끊어 외우기
  23. 숫자 밀기 퍼즐 윗줄부터 맞추는 법과 마지막 두 장
  24. 스네이크, 먹이로 곧장 갈까 판을 돌까
  25. 우주 방어, 바깥 열부터 없애면 시간이 얼마나 벌릴까
  26. 탑 쌓기 퍼펙트 타이밍 오차와 층수지금 읽는 글
  27. 두더지 잡기, 점수는 몇 마리보다 연속이 가릅니다
  • 탑 쌓기

    제때 눌러야 블록이 안 잘려요