다섯이 넷을 밀어도 18초 — 블록 워즈 점령과 사격, AI 시야의 셈
블록 워즈의 점령 막대가 머릿수가 아니라 머릿수 «차이»로 찬다는 것, 무기 여섯이 몸 · 머리 · 다리에 몇 발이면 쓰러뜨리는지, AI 가 서 있는 나를 몇 칸 앞에서 알아채는지를 게임 코드의 숫자 그대로 표로 옮겼습니다. 유효 거리를 두 배로 넘기는 자리에서 피해가 어떻게 꺾이는지, 꾸미기를 다 사는 데 몇 판이 드는지까지 셌습니다.
규칙이 무엇인지는 블록 워즈 게임 소개에 탭으로 정리되어 있습니다. 이 글은 그 규칙이 초와 칸으로 얼마인지를 셉니다. 아래 숫자는 게임 코드의 shared/ 폴더에서 바로 옮겼거나 — 무기 · 역할 표는 rules.ts, 점령 셈은 battle.ts, 시야는 ai.ts, 다이아는 economy.ts 와 look.ts 입니다 — 그 파일의 함수를 실제로 돌려 나온 값입니다. 표의 값은 판마다 달라지지 않고, 피해와 점령의 셈은 사람과 AI 에게 똑같이 걸립니다.
점령 막대는 머릿수가 아니라 머릿수 «차이»로 찹니다
점령지 둘레에 선 양쪽 사람 수를 세어, 많은 쪽에서 적은 쪽을 뺀 차이만큼 막대가 움직입니다. 차이가 3을 넘으면 더 빨라지지 않습니다. 둘레 안이라도 높이가 7칸 이상 다르면 세지 않습니다 — 위층에 올라가 있으면 셈에서 빠집니다.
| 머릿수 차이 | 빈 점령지 차지 | 적이 쥔 곳 뺏기 |
|---|---|---|
| 1명 (1 대 0, 5 대 4 모두) | 18.0초 | 36.0초 |
| 2명 | 9.0초 | 18.0초 |
| 3명 | 6.0초 | 12.0초 |
| 4명 이상 | 6.0초 (더 안 빨라짐) | 12.0초 |
읽는 법이 중요합니다. 다섯이 넷을 밀어도 차이는 1이라 18초가 걸리고, 혼자 빈 곳에 선 것과 똑같습니다. 양쪽 수가 같으면 막대가 아주 멈춥니다. 그래서 다섯이 한 점령지에 몰려 있는 것보다, 둘이 한 곳 · 셋이 다른 곳으로 갈라서는 쪽이 거의 언제나 빠릅니다.
적이 쥔 곳이 두 배인 까닭은 막대가 -100에서 +100까지 200칸을 움직여야 하기 때문입니다. 0을 지나는 순간 점령지는 주인 없는 곳이 되고, +100에 닿아야 내 편 것이 됩니다.
둘레가 비면 어떻게 되는지는 0을 지났느냐로 갈립니다. 0을 지나기 전이면 막대가 주인 쪽으로 1/3 속도로 되돌아갑니다 — 0 바로 앞까지 밀어 놓았어도 54초면 원래대로입니다. 0을 지나 주인 없는 곳이 된 뒤에는 막대가 그 자리에 서 있으니, 돌아와 이어서 밀면 됩니다. 둘레에 적이 남아 있으면 이야기가 다릅니다 — 막대는 서지 않고 적 쪽으로 차이만큼 밀립니다.
세 곳을 동시에 쥐고 120초를 지키면 시간이 남아도 그 자리에서 이깁니다. 뺏긴 쪽도 끝난 것은 아닙니다 — 25초 뒤 증원이 나와 20초쯤 달려오고, 혼자서도 18초면 막대를 0까지 되돌려 시계를 끊으니, 세 곳을 다 잃어도 1분 남짓이면 뒤집기를 시작할 수 있습니다.
무기 여섯, 몇 발이면 쓰러뜨리나
체력은 100이고 방탄판이 없을 때, 유효 거리 안에서 맞혔을 때의 셈입니다. 괄호 안이 쓰러뜨리기까지의 발수입니다.
| 무기 | 몸 | 머리 | 다리 | 유효 거리 | 다음 발까지 | 탄창 + 여분 |
|---|---|---|---|---|---|---|
| K2 소총 | 26 (4발) | 52 (2발) | 18 (6발) | 90칸 | 0.095초 | 30 + 150 |
| K1A 기관단총 | 22 (5발) | 44 (3발) | 15 (7발) | 50칸 | 0.078초 | 30 + 180 |
| K15 경기관총 | 25 (4발) | 50 (2발) | 18 (6발) | 100칸 | 0.082초 | 100 + 200 |
| K14 저격소총 | 90 (2발) | 90 (2발) | 64 (2발) | 260칸 | 1.45초 | 5 + 30 |
| 산탄총 (알갱이 하나) | 13 | 20 | 9 | 14칸 | 0.85초 | 7 + 35 |
| K5 권총 | 24 (5발) | 48 (3발) | 17 (6발) | 40칸 | 0.17초 | 15 + 60 |
머리는 무기마다 배율이 다릅니다 — 보통 두 배, 저격소총은 2.5배, 산탄총은 1.5배입니다. 다리는 어느 무기나 0.7배입니다. 머리로 세는 자리는 발에서 1.4칸 위부터고, 앉으면 0.9칸 위부터라 앉은 사람의 머리는 훨씬 낮습니다.
저격소총은 어디를 맞혀도 두 발입니다. 한 발 피해가 92인데 한 번에 깎이는 체력에 90이라는 상한이 있어서, 머리를 맞혀도 몸을 맞힌 것과 쓰러뜨리는 발수가 같습니다. 상한을 둔 까닭은 블록 워즈 개발 노트에 적었습니다. 그래도 머리를 노릴 값은 있습니다 — 방탄판을 머리는 막지 못하기 때문입니다(다음 절).
산탄총은 알갱이 아홉 개를 따로 세지만, 한 발에 깎이는 체력은 합쳐서 90까지입니다. 하나가 13이니 일곱 알(91)만 닿아도 상한에 걸려, 체력이 가득한 적은 붙어서 쏴도 두 발이 듭니다. 한 발이 두 사람에게 나뉘면 사람마다 따로 셉니다. 유효 거리는 14칸뿐이라 그 안에 붙어야 합니다. 공병이 산탄총을 드는 것은 벽을 로켓으로 뚫고 들어가 방 안에서 싸우는 역할이기 때문입니다.
연사 간격으로 보면 K15 경기관총이 초당 12.2발로 305, K2 소총이 초당 10.5발로 274입니다. 저격소총은 초당 0.7발로 62라 가장 낮고, 그 대신 유효 거리가 2.6배입니다.
유효 거리를 두 배로 넘기면 피해가 뚝 떨어집니다
유효 거리까지는 피해가 그대로입니다. 그 뒤로는 거리에 비례해 줄다가, 유효 거리의 두 배를 넘는 순간 0.35배(산탄은 0.15배)로 꺾입니다. 두 배 바로 앞이 0.5배쯤이니, 그 한 칸을 넘기느냐로 피해가 한 번 더 떨어지는 셈입니다.
| 무기 | 유효 거리 | 1.5배 | 2배 넘김 |
|---|---|---|---|
| K2 소총 | 90칸 26 (4발) | 135칸 20 (5발) | 180칸 9 (12발) |
| K1A 기관단총 | 50칸 22 (5발) | 75칸 17 (6발) | 100칸 8 (13발) |
| K15 경기관총 | 100칸 25 (4발) | 150칸 19 (6발) | 200칸 9 (12발) |
| K14 저격소총 | 260칸 90 (2발) | 390칸 69 (2발) | 420칸 64 (2발) |
| 산탄총 (아홉 알) | 14칸 90 (2발) | 21칸 90 (2발) | 28칸 18 (6발) |
총알은 420칸까지 날아갑니다. 저격소총은 그 끝에서도 한 발 64라 두 발이면 쓰러뜨리지만, K2 소총으로 180칸 밖을 쏘면 열두 발이 듭니다. 240 × 240칸 전장에서 대각선은 340칸쯤이니, 소총으로 전장을 가로질러 쏘는 것은 사실상 소리만 내는 일입니다.
산탄총의 꺾임이 가장 가파릅니다 — 21칸까지는 아홉 알이 다 닿으면 두 발이지만, 28칸을 넘으면 여섯 발입니다.
폭발은 한가운데에서 90으로 멈춥니다
폭발 피해는 떨어진 자리에서 멀어질수록, 가까운 쪽이 더 가파르게 줄어듭니다. 사이에 블록이 있어 가리면 35%만 받습니다. 나뭇잎과 유리는 가리지 못합니다.
| 터지는 것 | 반지름 | 한가운데 | 1칸 | 2칸 | 3칸 | 4칸 | 가린 채 한가운데 | 땅을 패는 반지름 |
|---|---|---|---|---|---|---|---|---|
| K413 수류탄 | 5.5칸 | 90 | 83 | 56 | 33 | 14 | 40 | 1.6칸 |
| PZF-III 로켓 | 3.8칸 | 90 | 86 | 42 | 12 | 0 | 49 | 2.4칸 |
| FPV 드론 자폭 | 4칸 | 90 | 76 | 40 | 13 | 0 | 42 | 1.4칸 |
| 105mm 포탄 | 7칸 | 90 | 90 | 88 | 61 | 39 | 53 | 2.6칸 |
| 전투기 미사일 | 8칸 | 90 | 90 | 90 | 90 | 63 | 67 | 3.4칸 |
한가운데 값이 모두 90인 것은 한 번에 깎이는 상한에 걸린 것입니다. 체력이 가득하면 바로 밑에서 터져도 10이 남습니다 — 다만 포탄은 2칸 밖에서도 88이라, 두 발째가 떨어지기 전에 몸을 빼야 합니다.
로켓과 드론은 3칸만 벗어나도 12~13입니다. 로켓은 반지름이 좁은 대신 땅을 패는 반지름이 수류탄의 1.5배라, 벽을 뚫는 데 쓰고 사람은 그 뒤에 총으로 잡는 것이 맞습니다. 드론은 부수는 힘이 다섯 가운데 가장 작으니 벽이 아니라 사람 곁에서 터뜨립니다. 반대로 포탄과 미사일은 반지름이 넓어 숨을 데 없는 들판에서 무섭습니다.
가린 채 받는 값을 보면 블록 하나가 얼마나 일하는지가 보입니다. 수류탄이 발밑에서 터져도 블록이 사이에 있으면 40입니다.
수류탄은 손을 떠난 뒤 3.2초에 터집니다. 연막은 22초 동안 반지름 5칸을 덮고, AI 는 연막 너머를 보지 못합니다 — 열린 땅을 건널 때 쓰는 22초입니다.
방탄판은 55%를 받지만 머리는 막지 못합니다
방탄판은 머리가 아닌 곳에 맞을 때 피해의 55%를 받아 주고, 받아 준 몫의 1.2배로 닳습니다. K2 소총 몸통 한 발(26)이면 방탄판이 14를 받고 17이 닳으니, 100에서 시작한 방탄판은 여섯 발에 사라집니다. 그동안 체력은 한 발에 12씩만 깎입니다.
| 방탄판 100 · 체력 100 인 적을 K2 소총으로 | 쓰러뜨리기까지 |
|---|---|
| 몸통만 맞히기 | 8발 |
| 머리만 맞히기 | 2발 |
네 배 차이입니다. 방탄판은 머리에 맞은 피해를 받아 주지 않으니, 머리만 노리면 방탄판 100이 그대로 남은 채 쓰러집니다. 머리를 노릴 값은 배율보다 방탄판을 건너뛰는 데 있습니다.
체력이 35 아래로 내려가면 다리를 절어 속도가 0.72배가 됩니다. 되돌릴 방법은 둘입니다.
| 무엇 | 채우는 체력 | 드는 시간 | 비고 |
|---|---|---|---|
| 구급함 (모두 가짐) | 50 | 2.6초 | 그동안 쏘지 못합니다. 네 개까지 듭니다 |
| 의무병 응급 처치 | 45 | 4초마다 | 3.5칸 안의 아군에게. 의무병은 구급함도 3개 듭니다 |
주운 아이템(구급함 · 탄약 · 방탄판 · 수류탄 · 로켓)은 같은 자리에 60초 뒤 다시 놓입니다. 점령지 근처의 아이템 자리를 외워 두면 60초마다 돌아올 이유가 생깁니다.
AI 는 서 있는 나를 75칸 앞에서 알아챕니다
AI 병사는 등 뒤 150°쯤을 빼고 앞과 양옆을 보며, 블록 · 나뭇잎 · 연막에 가린 적은 보지 못합니다. 10칸 안이거나 막 맞았거나 총소리를 들었을 때는 등 뒤도 돌아봅니다. 알아채는 거리는 기본 75칸이고, 내가 어떻게 있느냐로 곱해집니다. 난이도는 사람 대 AI 판에서는 홍군에만 걸리고, 사람끼리 맞붙는 판에서는 빈자리를 채운 AI 모두에게 같은 값으로 걸립니다.
| 내 몸가짐 | 쉬움 | 보통 | 헬 |
|---|---|---|---|
| 서 있기 | 60칸 | 75칸 | 97.5칸 |
| 달리기 | 69칸 | 86.3칸 | 112.1칸 |
| 앉기 | 39칸 | 48.8칸 | 63.4칸 |
| 앉은 저격병이 가만히 있기 | 17.6칸 | 21.9칸 | 28.5칸 |
| 방금 쏘고 1.5초 안 | 96칸 | 120칸 | 156칸 |
| 앉아서 쏘기 | 62.4칸 | 78칸 | 101.4칸 |
두 가지만 기억하면 됩니다. 앉으면 거리가 0.65배로 줄고, 쏘면 1.6배로 늘어납니다. 앉은 저격병이 멈춰 있으면 보통 난이도에서 22칸까지 다가와야 보이지만, 한 발 쏘면 그 순간 35칸으로 늘어납니다. 저격병이 쏘고 자리를 옮기는 것은 멋이 아니라 이 숫자 때문입니다.
보는 쪽이 저격병 AI 면 거리가 1.6배입니다. 총소리는 70칸 안에서 1.2초 동안 대강의 자리를 알려 줍니다 — 안 보여도 소리로 찾아옵니다.
난이도가 바꾸는 것은 거리만이 아닙니다.
| 난이도 | 맞히는 확률 배율 | 처음 보고 쏘기까지 | 알아채는 거리 | 홍군 증원 |
|---|---|---|---|---|
| 쉬움 | 0.55배 | 1.05초 | 0.8배 | 그대로 |
| 보통 | 0.85배 | 0.64초 | 1배 | 그대로 |
| 헬 | 1.3배 | 0.26초 | 1.3배 | 1.5배 |
처음 보고 쏘기까지의 값에는 운으로 0~0.26초, 거리 1칸마다 0.003초가 더 붙습니다. 헬에서 서서 쏘면 156칸 밖의 홍군도 나를 알아채고 1초 안(0.73~0.99초)에 쏘기 시작합니다. 엄폐물 없이 열린 땅을 건널 수 있는 난이도가 아닙니다.
포격과 드론은 시계를 보고 씁니다
| 장비 | 다시 쓰기까지 | 그 밖의 셈 |
|---|---|---|
| 포격 요청 (포병) | 70초 | 찍고 5.5초 뒤 첫 탄 · 여섯 발 · 0.65초 간격 · 7칸 안에 흩어짐 |
| FPV 드론 (드론병) | 15초, 세 대까지 | 16칸/초 · 배터리 45초 · 110칸부터 잡음 · 160칸에서 끊겨 떨어짐 |
| 응급 처치 (의무병) | 4초 | 3.5칸 안 |
| 모래주머니 (공병) | — | 20개 · 5칸 안에 놓음 |
포격은 찍은 자리에 7칸으로 흩어지니, 아군이 그 둘레 안에 있으면 아군이 맞습니다. 여섯 발이 0.65초 간격이라 첫 탄에서 마지막 탄까지 3.25초가 걸리고, 그동안 적이 걸어 나갈 수 있는 거리를 셈해 앞을 찍는 쪽이 맞습니다.
드론은 45초 × 16칸이면 720칸을 날 수 있지만, 신호가 내 몸에서 160칸 떨어지면 끊깁니다. 160칸까지 곧장 가는 데 10초면 되니 배터리보다 거리가 먼저 막히고, 남는 35초는 그 둘레 안에서 적을 찾는 데 씁니다. 드론은 돌아오지 않습니다 — 조종을 끊으면 그 자리에서 터집니다. 자폭은 반지름 4칸 · 한가운데 90이라 몰려 있는 적 둘 이상을 노릴 때 값이 납니다. 날고 있는 드론은 맞는 반지름이 0.55칸뿐이라 총으로 떨어뜨리기가 쉽지 않습니다. 적 드론이 70칸 안에 오면 알림이 뜨고, 조종하는 동안 내 몸 35칸 안에 적이 보이면 「본체 위험」이 뜹니다 — 그 알림은 보고 바로 끊어야 하는 알림입니다.
전장 이벤트(포격 · 전투기 공습 · 보급품)는 경기 70초 뒤 처음 오고, 그다음부터 55~85초 사이에서 하나씩 옵니다. 붉은 고리와 경보가 먼저 뜨고 4초 뒤에 떨어지니, 고리가 보이면 그 4초 안에 걸어서 빠져나가면 됩니다.
꾸미기를 다 사려면 5,000 다이아입니다
다이아는 판이 끝나면 서버가 성적을 보고 줍니다. 처음 들어오면 60이 있습니다.
| 받는 것 | 값 |
|---|---|
| 이김 · 비김 · 끝까지 싸움 | 30 · 18 · 12 |
| 쓰러뜨림 하나 | 2 |
| 입힌 피해 100마다 | 1 |
| 아군 치료 한 번 | 1 |
| 한 판 상한 | 120 |
승패 몫은 그 판에서 병사를 1분 이상 맡아야 나옵니다. 끝나기 직전에 들어와 구경만 해서는 받지 못하고, 쓰러진 채 이어받기를 기다린 시간도 1분에 들지 않습니다. 사람이 모두 나가 서버가 판을 닫으면 얼마를 맡았든 승패 몫은 없습니다. 쓰러뜨림 · 피해 · 치료는 시간을 따지지 않고 한 만큼 줍니다.
꾸미기 값은 얼굴 아홉 가지 1,410 · 철모 아홉 가지 1,260 · 등짐 아홉 가지 1,390 · 조끼 다섯 가지 940으로 모두 5,000입니다. 가장 비싼 것은 4안 야시경과 폭발물 처리복으로 400씩입니다. 처음부터 입고 있는 것 — 피부 넷, 맨얼굴, 무늬 없는 철모, 등에 아무것도 없는 것, 기본 조끼 — 은 값이 붙지 않습니다. 모두 겉모습만 바뀌고 능력은 그대로입니다.
이기고 세 명을 쓰러뜨리고 피해 600을 입힌 판이면 30 + 6 + 6 = 42입니다. 처음 60을 빼고 나머지 4,940을 이 속도로 모으면 118판입니다. 한 명을 쓰러뜨리고 피해 300을 입히고 지는 판(12 + 2 + 3 = 17)만 이어지면 291판이 듭니다. 의무병으로 이기고 열두 번 치료한 판도 42라, 쓰러뜨리지 않는 역할이 손해 보지는 않습니다.
여기에 오늘의 퀘스트 셋이 하루 20~55씩 더해집니다 — 날마다 바뀌고 모두에게 같은 과제라, 세 개를 다 하면 하루에 70~160을 더 받습니다. 판 수와 승리를 세는 퀘스트도 승패 몫이 나오는 판만 셉니다. 한국 시간 자정에 셋이 바뀌면 다 해 놓고 안 받은 것은 사라집니다. 자정 한 시간 전부터 퀘스트 창이 남은 개수를 알려 주니, 그때 받아 두면 됩니다.
한 줄로
점령은 머릿수 차이 1명이면 18초니 갈라서는 쪽이 빠르고, 소총은 유효 거리 두 배를 넘기면 피해가 0.35배로 꺾이고, 앉으면 AI 가 보는 거리가 0.65배로 줄지만 쏘면 1.6배로 늡니다. 나머지는 블록 뒤에 서 있기만 해도 폭발 피해가 35%로 줄어든다는 것 하나입니다.