Chapter 01

system · 약 3분 읽기

한 칸의 단어 이동이 남기는 원인과 결과

문장 파싱, 즉시 상태 갱신, 입력 단위 되돌리기를 한 격자 규칙으로 묶는 설계.

규칙 블록을 밀어 물길의 성질을 바꾸는 작은 인물

콘셉트 아트 · 문장을 옮기는 한 칸이 세계를 즉시 바꾼다 (AI 생성)

원작 관찰과 제안의 경계

공식 사이트는 규칙 자체가 물리적 객체로 놓이고, 조작으로 사물의 쓰임과 상호작용을 바꿀 수 있다고 설명한다. ‘돌이 된다’, ‘풀을 위험하게 만든다’, 목표도 바꾼다는 사례도 든다. 여기서 정의하는 좌표 기록, 단일 입력 재계산 순서, 제한된 분기 보관은 독립 시제품의 제안이며 원작 기능이라고 말하지 않는다. 개발자 공식 페이지

한 입력의 계산 순서

격자는 1칸씩 움직이며 대각 이동은 없다. 입력을 받으면 먼저 현재 YOU 성질 객체가 같은 방향으로 이동을 시도한다. PUSH인 객체는 연속한 빈칸까지 한 덩어리로 밀 수 있으나 STOP 또는 격자 끝 앞에서는 전체 이동이 취소된다. 이동이 끝난 뒤 모든 가로·세로 단어열을 왼쪽에서 오른쪽, 위에서 아래로 읽어 명사-IS-성질 또는 명사-IS-명사 문장을 만든다. 마지막으로 새 문장으로 YOU, WIN, STOP, PUSH, SINK를 일괄 적용하고 승리와 소멸을 판정한다.

따라서 가라앉음 블록을 미는 그 객체는 같은 입력으로 물을 통과하지는 않는다. 그 객체의 이동은 옛 규칙으로 이미 끝났고, 다음 입력부터 새 규칙이 적용된다. 다만 같은 입력에 다른 YOU 객체가 옛 규칙상 물 칸으로 이미 들어갔다면, 문장 해제 뒤 SINK 판정에서는 물이 더 이상 SINK가 아니므로 살아남는다. STOP은 이동 시도 자체를 막는 옛 상태의 충돌 규칙이고, SINK는 이동 뒤 새 상태로 겹침을 소멸시키는 규칙이다. 반대로 ‘바바 IS 깃발’을 만드는 순간 바바가 깃발 객체가 되어도, 그 입력의 이동은 이미 처리됐으므로 다음 입력에 깃발의 성질을 사용한다. 이 한 틱 경계는 애니메이션보다 먼저 기록에 나타난다.

SINK는 SINK 객체와 겹친 객체 둘을 이동 후 소멸시킨다. 같은 칸에 WIN과 YOU가 생기면 소멸 판정보다 승리를 먼저 확인하지 않는다. 먼저 문장 적용, 그 다음 SINK 소멸, 그 다음 살아 있는 YOU와 WIN의 겹침을 확인한다. 이 순서를 튜토리얼 첫 장면에서 쓰지 않더라도 데이터 명세로 고정해 제작자마다 다른 예외를 넣지 못하게 한다.

공유 단어와 되돌리기

각 방은 최근 60개 입력만 되돌릴 수 있다. 이동, 밀기, 규칙 재계산, 소멸, 승리를 모두 하나의 입력 스냅샷으로 저장한다. 자동 이동이나 애니메이션 프레임을 중간 기록으로 쪼개지 않는다. 되감은 뒤 다른 입력을 하면 미래 60개는 폐기된다. 퍼즐은 유한 상태라서 전체 분기를 저장하면 해답 탐색기의 답안 목록처럼 변하기 때문이다.

공유 IS 방에서 돌을 밀고 등대를 움직이는 사례는 두 규칙을 동시에 만족시키려는 오해를 드러낸다. 화면은 IS가 어느 문장에 속했는지를 색으로 칠하지 않는다. 대신 커서를 IS에 올리면 현재 성립 문장 둘을 큰 글자와 격자 위치로 읽는다. 단어의 색을 기억하는 것이 아니라, 위치가 만든 문법을 보게 한다.

실패·접근성·악용

YOU가 0개가 되면 즉시 방 시작 상태로 강제 초기화하지 않고 ‘조종 대상 없음’ 정지 화면을 낸다. 되돌리기와 재시작 중 하나를 선택한다. 이것이 변신의 결과를 감추지 않으면서 영구 막힘을 피한다. 되돌리기 60개를 모두 쓴 뒤에도 재시작은 가능하며, 재시작은 최단 해답 힌트를 주지 않는다.

단어는 색만으로 품사를 구분하지 않는다. 명사는 사각 테두리, 성질은 모서리 잘린 테두리, 연결어는 세로 막대를 함께 쓴다. 글자 크기 세 단계, 고대비, 키보드 단일 방향 입력, 최근 기록의 화면 읽기를 제공한다. 빠른 반복키가 한 입력을 건너뛰지 않도록 입력 큐는 1회 계산이 끝난 뒤 다음 방향을 받는다. 자동 반복으로 문장 상태를 놓치는 악용과 접근성 위험을 함께 줄인다.