나이트 투어의 규칙은 짧습니다. 나이트는 L자로 움직이고, 한 번 밟은 칸은 다시 밟지 않으며, 모든 칸을 밟으면 끝입니다. 여기에 한 줄을 더하면 같은 판이 전혀 다른 퍼즐이 됩니다. 이 게임에는 그런 변형이 셋 있습니다.
닫힌 투어 — 시작 칸으로 돌아와야 한다
모든 칸을 밟은 뒤, 마지막 칸에서 시작 칸으로 한 수에 돌아올 수 있어야 완주입니다. 경로가 하나의 고리가 되는 셈입니다. 그래프 이론에서 보통의 나이트 투어가 해밀턴 경로라면 이쪽은 해밀턴 회로이고, 8×8 체스판의 닫힌 투어는 13조 개가 넘는 것으로 계산되어 있습니다.
어려워지는 이유는 계획의 시점입니다. 여정의 끝을 출발 전에 정해 둬야 합니다. 마지막에 밟을 칸은 반드시 시작 칸의 이웃이어야 하니까요.
이 성질은 게임에도 그대로 씁니다. 시작 칸의 이웃들이 전부 이미 방문됐는데 아직 안 밟은 칸이 남아 있다면, 그 판은 그 순간 끝난 것입니다. 남은 칸 어디에서 끝나든 시작 칸으로 돌아올 수 없으니까요. 60칸을 다 채운 뒤에야 실패를 알려 주는 대신, 우리는 바로 그 자리에서 알려 줍니다. 솔버에서는 같은 판단이 가지치기가 되어 탐색을 몇 배 빠르게 만듭니다.
정해진 끝 — 깃발 칸에서 마쳐야 한다
닫힌 투어가 "제자리로"라면 이쪽은 "저 지점으로"입니다. 판 어딘가에 깃발이 꽂혀 있고, 마지막 수가 그 칸이어야 합니다.
실제로 해보면 성격이 꽤 다릅니다. 깃발 칸을 지나가면 안 되기 때문에, 여행 내내 그 칸을 피해 다니면서도 마지막에는 반드시 닿을 수 있게 남겨 둬야 합니다. 깃발 칸을 일찍 밟는 순간 그 판은 끝나고, 게임도 그 자리에서 알려 줍니다.
이 챕터를 만들 때 조건을 하나 더 걸어야 했습니다. 깃발 칸은 드나들 문이 둘 이상이어야 한다는 것. 문이 하나뿐인 칸을 목표로 삼으면 퍼즐이 저절로 풀립니다 — 그 칸은 어차피 들어가면 나올 수 없어서 경로의 끝일 수밖에 없고, 그러면 깃발이 아무것도 요구하지 않는 장식이 됩니다. 이 조건을 넣기 전에 뽑힌 판 몇 개가 정확히 그랬습니다.
두루마리 세상 — 좌우가 이어져 있다
판의 왼쪽 끝과 오른쪽 끝이 붙어 있습니다. 왼쪽 가장자리에서 더 왼쪽으로 뛰면 오른쪽 가장자리로 나옵니다. 위아래는 그대로 막혀 있어서, 판은 평면도 아니고 도넛도 아닌 원통이 됩니다.
이 변형은 규칙을 더한다기보다 지형을 바꿉니다. 좌우 가장자리 칸의 선택지가 늘어나면서 그 칸들이 더 이상 위험 지대가 아니게 되고, "구석부터 처리하라"는 요령의 전제가 절반쯤 무너집니다. 손이 기억하는 대로 두면 엉뚱한 곳에서 갇힙니다.
이 챕터의 후보 판에는 조건이 하나 더 있었습니다. 좌우를 잇지 않고는 풀 수 없어야 한다는 것. 이어 붙이지 않고도 풀리는 판이라면 두루마리라는 규칙이 아무 일도 하지 않으니까요. 그런데 이 "없음"을 확인하는 과정에서 실수가 나왔고, 규칙이 무의미한 판 두 개가 새어나갔습니다. 그 이야기는 따로 썼습니다.
그 이야기: 298개 판이 전부 풀린다는 걸 어떻게 아는가규칙 한 줄의 값
세 변형은 모두 판 모양을 하나도 바꾸지 않습니다. 같은 칸, 같은 나이트, 같은 L자 이동입니다. 바뀐 건 완주의 정의 한 줄뿐인데, 그 한 줄이 풀이 전략과 난이도 곡선을 통째로 바꿔 놓습니다.
판을 크게 만드는 것보다 이쪽이 훨씬 값이 쌉니다. 새 챕터를 만들 때마다 확인하게 되는 사실입니다.
이어서: 200년 된 요령이 아직도 최선이다 — 바른스도르프 규칙스테이지 모드