먹이를 먹으면 몸이 한 칸씩 길어지고, 벽이나 자기 몸에 닿으면 끝나는 고전 게임이에요. 판은 20×20 이고 뱀은 길이 3 으로 시작해요. 먹이를 다섯 개 먹을 때마다 조금씩 빨라져서, 후반에는 «어디로 갈지» 를 미리 정해 두지 않으면 손이 못 따라가요. 벽 통과 모드를 켜면 벽 대신 반대편에서 나와요. 최고 기록은 이 브라우저에만 저장되고 설치·회원가입이 없어요.
먹이 다섯 개마다 한 칸 움직이는 시간이 10밀리초씩 짧아지고, 70밀리초에서 멈춰요. 그 아래로 가면 방향을 바꿀 틈이 사람의 반응 시간보다 짧아져요.
꼬리 끝 칸으로는 들어갈 수 있어요. 그 칸은 같은 수에 어차피 비워지니까요. 다만 먹이를 먹는 수에는 꼬리가 그대로 남아서 부딪힘이 돼요.
판을 전부 채우면 그 판은 승리로 끝나요. 400칸을 다 채운다는 뜻이라 실제로 보기는 어려워요.
최고 기록과 «벽 통과» 설정은 이 브라우저(localStorage)에만 저장되고 서버로 전송되지 않아요.
스네이크의 규칙은 «뱀은 멈추지 않는다» 하나에서 나와요. 앞으로 계속 가고 우리가 정할 수 있는 건 방향뿐이에요. 먹이를 먹으면 몸이 한 칸 길어지고, 벽이나 자기 몸에 닿으면 끝이에요.
이 게임이 어려워지는 방식이 독특해요. 보통 게임은 적이 강해지거나 속도가 빨라져서 어려워지는데, 스네이크에서는 «내가 잘해서 얻은 길이» 자체가 장애물이 돼요. 잘할수록 판이 좁아지는 구조라, 실력에 대한 보상이 곧 다음 판의 난이도예요.
판은 20×20 = 400칸이고 뱀은 길이 3 으로 시작해요. 먹이 하나가 1점이니 이론상 최고점은 397점인데, 그건 판을 전부 뱀으로 채웠다는 뜻이에요.
머리 바로 뒤 칸은 자기 목이에요. 오른쪽으로 가는 중에 왼쪽을 누르면 그 즉시 몸에 부딪혀서 끝나요. 손가락이 미끄러진 것 하나로 판이 끝나면 게임이 아니라 벌칙이라, 대부분의 구현이 이 입력을 무시해요.
여기서 흔한 버그가 하나 나와요. «예약된 방향» 을 기준으로 반대를 막으면, 한 칸이 움직이기 전에 위 → 왼쪽 → 아래를 빠르게 누르는 것으로 몸통을 관통할 수 있어요. 각 입력은 직전 입력의 반대가 아니지만, 결과적으로는 반대 방향이 되거든요.
그래서 이 페이지는 «이번 칸에서 실제로 움직인 방향» 을 기준으로 판정해요. 한 칸 안에서 몇 번을 누르든 그 칸에서 실제로 간 방향의 반대만 막히면, 통과 버그가 원천적으로 사라져요.
한 칸 움직이는 데 처음에는 0.17초가 걸리고, 먹이 다섯 개마다 0.01초씩 짧아져요. 0.07초에서 멈추는데, 그보다 빨라지면 한 칸을 지나가는 동안 방향을 바꿀 여유가 사람의 반응 시간보다 짧아져요.
점수는 먹은 개수 그대로예요. 배수도 보너스도 없는 이유는 이 게임의 난이도 곡선이 이미 점수에 붙어 있기 때문이에요 — 20점째의 먹이는 3점째의 먹이보다 몸이 열일곱 칸 더 긴 상태에서 먹는 거라 훨씬 어려워요.
그래서 기록은 «몇 점» 보다 «어디서 죽었는가» 로 읽는 편이 정확해요. 대체로 길이 20 근처에서 판 가운데가 막히기 시작하고, 길이 40 을 넘으면 미리 길을 정해 두지 않으면 스스로 가둬요.
초보자가 가장 먼저 고칠 습관은 «먹이를 향해 직선으로 가기» 예요. 짧을 때는 통하지만 길어지면 먹이를 먹은 자리에서 갇혀요. 먹이로 가는 길보다 «먹은 다음 어디로 빠져나올지» 를 먼저 보세요.
가장 쉬운 안전 습관은 가장자리를 따라 도는 거예요. 벽을 한쪽 면으로 삼고 판을 크게 돌면 몸이 한 덩어리로 유지돼서, 안쪽에 빈 공간이 넓게 남아요. 먹이가 안쪽에 뜨면 그때만 들어갔다 나와요.
꼬리를 따라가는 것도 좋은 도피처예요. 꼬리 끝 칸은 내가 도착하는 순간 비워지니 안전한 칸이고, 갈 곳이 안 보일 때 꼬리를 쫓으면 시간을 벌 수 있어요.
이론적으로 절대 죽지 않는 방법도 있어요. 모든 칸을 한 번씩 지나 제자리로 돌아오는 고리를 만들어 두고 그 위만 계속 도는 거예요. 수학에서는 이런 고리를 해밀턴 순회라고 부르고, 20×20 처럼 짝수 칸 격자에서는 반드시 존재해요. 실제로 해 보면 한 판이 지루할 만큼 길어지지만, «완벽한 플레이가 존재한다» 는 사실은 이 게임의 성격을 잘 보여 줘요.
실전에서는 그 고리를 통째로 따르지 않고, 먹이가 가까울 때만 지름길로 새고 위험해지면 고리로 돌아오는 식으로 섞어 써요.
벽 통과를 켜면 판의 위아래·좌우가 이어져요. 벽에 부딪혀 죽는 방법이 사라지니 초반이 훨씬 편해지고, 판 밖으로 나가는 실수로 끝나는 일이 없어요.
대신 후반이 더 어려워요. 벽이 없으면 «가장자리를 따라 돈다» 는 안전 습관이 의미를 잃고, 내 몸이 판을 가로지르는 모양이 되어서 어느 쪽으로 돌아 나올지를 매번 새로 계산해야 해요.
두 모드는 최고 기록을 따로 세지 않아요 — 같은 판, 같은 먹이 규칙이라 한 숫자로 두고, 어느 쪽으로 세웠는지는 본인이 알고 있으면 되는 정도예요.
먹이는 «빈 칸 목록에서 하나 고르기» 로 놓아요. 뱀이 있는 칸이 나오면 다시 뽑는 흔한 방식은 판이 거의 찼을 때 시도 횟수가 폭발해서, 후반에 화면이 잠깐 멈춰요.
꼬리 판정은 한 칸 차이를 정확히 맞춰요. 이번 수에 꼬리가 비워지니 꼬리 끝 칸으로는 들어갈 수 있고, 먹이를 먹는 수에는 꼬리가 남으니 그때는 부딪힘이에요. 이걸 뭉뚱그리면 «분명히 지나갈 수 있는데 죽었다» 는 억울한 판정이 나와요.
규칙 계산은 순수 함수로 떼어 놨어요. 상태를 값으로 다뤄서 한 수 앞을 시험 삼아 계산해 볼 수 있고, 테스트가 판을 그대로 적어 검증할 수 있어요.
이동은 30밀리초마다 도는 타이머 하나가 맡고, 점수별 간격은 그 안에서 시간을 모아 판정해요. 속도가 바뀔 때마다 타이머를 새로 걸면 그 순간의 한 칸이 사라져요.
최고 기록과 벽 통과 설정은 이 브라우저에만 남아요. 서버로 보내는 값이 없어서 전체 순위표가 없고, 사이트 데이터를 지우면 기록도 사라져요.
뱀은 멈추지 않고 앞으로 가고, 방향만 바꿀 수 있어요. 먹이를 먹으면 1점과 함께 몸이 한 칸 길어지고, 벽이나 자기 몸에 닿으면 그 판이 끝나요. 규칙은 이게 전부예요.
머리 바로 뒤 칸이 자기 목이라, 반대로 꺾으면 그 즉시 자기 몸에 부딪혀요. 사고로 게임이 끝나는 걸 막으려고 규칙에서 아예 무시해요. 판정은 «예약된 방향» 이 아니라 «이번 칸에서 실제로 움직인 방향» 으로 하는데, 그래야 한 칸 사이에 두 번 눌러 몸통을 통과하는 일이 안 생겨요.
벽에 닿아도 죽지 않고 반대편에서 나와요. 죽는 방법이 «자기 몸» 하나로 줄어서 훨씬 오래 살 수 있고, 대신 몸이 길어졌을 때 판 전체를 한 덩어리로 봐야 해서 계산이 더 복잡해져요.
먹이 하나에 1점이에요. 길이와 점수가 같이 늘기 때문에 점수는 곧 «몇 개를 먹었는가» 이고, 20×20 판의 최대 점수는 397점(시작 길이 3 을 뺀 값)이에요.
네. 아래 십자 버튼으로 조작하거나 판 위를 원하는 방향으로 쓸면 돼요. 설치·회원가입 없이 브라우저에서 바로 되고 오프라인에서도 동작해요.
이 도구가 무엇을 근거로 계산하고 어디까지 답할 수 있는지 밝혀요.
판은 20×20 = 400칸이고 뱀은 길이 3 으로 시작해요. 먹이 하나에 1점, 몸이 한 칸 길어져요. 한 칸 이동 간격은 170밀리초에서 시작해 먹이 5개마다 10밀리초 줄고 70밀리초에서 멈춰요.먹이를 20개 먹으면 뱀의 길이는 3 + 20 = 23칸이고, 이동 간격은 170 − (20 ÷ 5) × 10 = 130밀리초예요.