게임 방법과 화면 구성
보드에는 4×4, 5×5, 6×6 중 고른 크기만큼 전구가 놓여 있고, 노란색 칸이 켜진 전구, 어두운 칸이 꺼진 전구입니다. 칸을 누르면 그 칸과 위·아래·왼쪽·오른쪽으로 맞닿은 칸의 불이 한꺼번에 반전됩니다. 대각선 칸은 영향을 받지 않고, 보드 가장자리에서는 존재하지 않는 이웃을 건너뛰기 때문에 모서리 칸은 3개, 변 칸은 4개, 안쪽 칸은 5개의 전구를 바꿉니다. 시작 화면은 일부만 켜져 있는 무작위 패턴이며, 모든 전구를 끄면 클리어입니다. 클리어하면 더 눌러지지 않고 내가 쓴 클릭 수와 그 판의 최소 클릭 수를 함께 보여 줍니다.
- 클릭 횟수: 새 퍼즐을 만든 뒤 칸을 누른 총 횟수입니다. 같은 칸을 두 번 누르면 원상복구되므로 낭비로 집계됩니다.
- 켜진 전구: 지금 켜져 있는 전구 수입니다. 줄어든다고 해서 정답에 가까워진다는 보장은 없습니다(아래 흔한 오해 참고).
- 힌트: 현재 상태에서 정답까지 가장 적은 클릭으로 갈 수 있는 경로 가운데 한 칸을 표시합니다. 쓴 횟수가 기록되므로 스스로 풀고 싶다면 아껴 두세요.
- 같은 퍼즐 다시: 시작 상태 그대로 처음부터 다시 도전하고, 새 퍼즐은 새 무작위 문제를 만듭니다. 난이도를 바꾸면 새 퍼즐이 시작됩니다.
이 퍼즐의 수학적 원리
각 칸은 켜짐(1)과 꺼짐(0)만 갖는 스위치이고, 같은 칸을 두 번 누르면 원래대로 돌아옵니다. 그래서 어떤 칸을 누르는 횟수는 홀수냐 짝수냐만 의미가 있고, 한 판의 풀이는 "각 칸을 누른다/누르지 않는다"의 조합 하나로 정리됩니다. 또 누르는 순서는 결과에 영향을 주지 않습니다. 칸이 25개인 5×5 보드라면 가능한 클릭 조합은 225가지이고, 풀이는 이 가운데 현재 켜진 패턴을 정확히 상쇄하는 조합을 찾는 문제입니다. 이는 2를 법으로 하는 연립 일차방정식, 즉 "조합 x에 누름 행렬 M을 곱한 값이 현재 패턴과 같다" (Mx = b, 덧셈은 XOR)를 푸는 일과 같고, 가우스 소거법으로 풉니다. 이 페이지의 힌트와 최소 클릭 수도 같은 방식으로 계산합니다.
방정식의 해가 몇 개인지는 누름 행렬이 얼마나 "겹치는 정보"를 갖는지에 달려 있습니다. 눌러도 보드가 전혀 바뀌지 않는 0이 아닌 클릭 조합을 "조용한 패턴(quiet pattern)"이라 부르고, 이런 패턴이 존재하면 해가 하나가 아니라 여러 개가 되며 반대로 일부 시작 상태는 아예 풀 수 없게 됩니다. 아래 표는 이 페이지가 빌드할 때 직접 계산한 값입니다.
| 크기 | 칸 수 | 보드 가로(px) | 전체 켜짐 상태 수 | 조용한 패턴 차원 | 풀 수 있는 상태 | 풀 수 있는 비율 | 한 상태당 해의 개수 |
|---|---|---|---|---|---|---|---|
| 4×4 | 16 | 210 | 65,536 | 4 | 4,096 | 1/16 | 16 |
| 5×5 | 25 | 264 | 33,554,432 | 2 | 8,388,608 | 1/4 | 4 |
| 6×6 | 36 | 318 | 68,719,476,736 | 0 | 68,719,476,736 | 100% | 1 |
표에서 눈에 띄는 점은 6×6이 가장 크지만 조용한 패턴이 없다는 것입니다. 6×6은 어떤 시작 상태든 반드시 풀 수 있고 해가 단 하나뿐이어서, 모든 칸의 "누른다/안 누른다"가 하나로 정해집니다. 반대로 4×4는 칸이 가장 적어도 조용한 패턴이 4차원이라 풀 수 있는 상태가 전체의 1/16 뿐이고, 풀 수 있는 상태마다 서로 다른 해가 16가지씩 존재합니다. 5×5는 중간으로, 풀 수 있는 상태가 전체의 1/4이며 해가 4가지입니다. 5×5의 조용한 패턴 3가지(0이 아닌 것 전부)는 다음과 같습니다. 이 조합을 통째로 누르면 보드가 그대로이므로, 해가 하나 있으면 여기에 이 패턴을 겹쳐 다른 해 3개를 더 얻을 수 있습니다.
□ ■ ■ ■ □ ■ □ ■ □ ■ ■ ■ □ ■ ■ ■ □ ■ □ ■ □ ■ ■ ■ □ (누르는 칸 16개)
■ □ ■ □ ■ ■ □ ■ □ ■ □ □ □ □ □ ■ □ ■ □ ■ ■ □ ■ □ ■ (누르는 칸 12개)
■ ■ □ ■ ■ □ □ □ □ □ ■ ■ □ ■ ■ □ □ □ □ □ ■ ■ □ ■ ■ (누르는 칸 12개)
이 게임의 문제 생성도 같은 원리를 활용합니다. 모두 꺼진 보드에서 시작해 칸 수만큼 반복하면서 매번 50% 확률로 무작위 칸 하나를 누르는 식으로 패턴을 만들기 때문에, 만든 과정을 거꾸로 되돌리면 반드시 전부 끌 수 있습니다. 즉 4×4와 5×5에서도 풀 수 없는 문제가 나오지 않습니다. 만들어진 패턴이 우연히 모두 꺼진 상태가 되면 가운데 칸을 한 번 눌러 최소한 한 번은 풀어야 하게 합니다. 난수는 브라우저의 Math.random으로, 암호용 난수가 아니라 게임용입니다.
누르는 칸에 따라 달라지는 영향 범위
어느 칸을 누르느냐에 따라 한 번에 바뀌는 전구 수가 다릅니다. 모서리는 3개(자기 자신과 이웃 2개), 변은 4개, 안쪽은 5개가 바뀝니다. 가장자리 칸을 먼저 정리하는 편이 안쪽을 건드리는 것보다 예측하기 쉬운 이유가 여기 있습니다.
| 크기 | 모서리 칸 수 (누르면 3개 변경) | 변 칸 수 (누르면 4개 변경) | 안쪽 칸 수 (누르면 5개 변경) |
|---|---|---|---|
| 4×4 | 4개 | 8개 | 4개 |
| 5×5 | 4개 | 12개 | 9개 |
| 6×6 | 4개 | 16개 | 16개 |
손으로 푸는 요령: 한 줄씩 밀어 내리기
가우스 소거법을 몰라도 쓸 수 있는 고전적인 방법이 "불 쫓아가기(chasing lights)"입니다. 첫 번째 줄은 그대로 두고, 첫 줄에서 켜진 전구마다 바로 아래 칸을 누르면 첫 줄 전구가 하나씩 꺼집니다. 이 과정을 둘째 줄, 셋째 줄 순으로 아래로 반복하면 마지막 줄을 제외한 모든 줄이 꺼진 상태가 됩니다. 마지막 줄에는 켜진 전구가 몇 개 남는데, 이 남은 패턴이 무엇인지에 따라 첫 줄에서 눌러야 했던 칸이 정해집니다. 4×4와 5×5에서는 이 단계에서 어디를 누르고 다시 밀어 내려야 하는지 표로 외울 수도 있지만, 처음에는 첫 줄을 바꿔 가며 시도하는 편이 빠릅니다. 힌트 버튼은 이런 시행착오 없이 현재 상태에서 쓸 수 있는 가장 짧은 해를 계산해 한 칸을 알려 줍니다.
검산한 예시
예시 1: 두 번 눌러 만든 패턴 되돌리기. 5×5 보드를 모두 끈 상태에서 왼쪽 위 모서리 칸(1행 1열)과 정가운데 칸(3행 3열)을 한 번씩 누르면, 모서리 3개(자기 자신과 오른쪽, 아래) + 가운데 5개(자기 자신과 상하좌우)가 겹치지 않으므로 전구 8개가 켜진 패턴이 만들어집니다. 이 패턴은 같은 두 칸을 누르면 사라지므로 최소 클릭 수는 2를 넘지 않고, 한 번 클릭으로 바뀌는 전구는 최대 5개라 8개를 한꺼번에 끌 수 없으니 정확히 2입니다. 직접 해 보면 이렇게 규칙이 거꾸로 적용되는 것을 확인할 수 있습니다.
예시 2: 전부 켜진 보드. 모든 전구가 켜진 보드의 최소 클릭 수는 4×4에서 4번, 5×5에서 15번, 6×6에서 28번입니다(이 페이지의 풀이 코드로 계산하고, 해를 실제로 적용해 모든 전구가 꺼지는지 검증한 값). 칸 수가 16에서 25로 늘면 클릭 수는 4에서 15로 훨씬 가파르게 늘어납니다. 반대로 같은 5×5라도 앞의 예시처럼 켜진 전구가 8개뿐이면 2번이면 되므로, 켜진 전구 수와 필요한 클릭 수는 비례하지 않습니다.
예시 3: 4×4와 5×5의 최대 최소 클릭 수. 풀 수 있는 모든 상태를 전수 계산해 보면, 4×4는 풀 수 있는 4,096가지 상태 가운데 가장 어려운 상태도 최소 7번이면 풀립니다. 5×5는 풀 수 있는 8,388,608가지 상태 중 가장 어려운 경우가 최소 15번입니다(전수 계산 결과). 6×6은 상태가 너무 많아 같은 방식의 전수 계산은 하지 않았으므로 최대 수는 단정하지 않겠습니다. 이 게임에서 만나는 문제는 무작위로 몇 번 눌러 만든 것이라 대부분 이보다 훨씬 적은 클릭으로 풀립니다.
흔한 오해와 실수
- "켜진 전구 수를 줄이는 쪽이 정답에 가깝다"는 오해: 한 번 눌러 전구가 3개 줄어도 다음 수에서 오히려 늘어날 수 있습니다. 최소 클릭 해는 중간에 켜진 전구가 늘어나는 경로를 지나기도 합니다.
- 같은 칸을 반복해서 누르는 실수: 2번 누르면 원래대로이고 순서도 결과에 영향이 없으므로, 한 칸은 아무리 많아도 한 번만 누르는 해가 존재합니다. 어떤 칸을 두 번 눌렀다면 잘못 누른 것입니다.
- 가운데부터 누르는 습관: 안쪽 칸은 5개를 바꿔 계산이 복잡해집니다. 위쪽 줄부터 차례로 정리하는 편이 실수를 줄입니다.
- 대각선 칸이 같이 바뀐다고 착각: 영향은 상하좌우 4칸뿐입니다.
- 4×4가 쉬울 거라는 예단: 칸은 적지만 시작 상태 중 풀 수 있는 것이 1/16뿐이고 풀리는 문제마다 해가 16가지라서, 한 가지 요령에 매달리면 오히려 헷갈릴 수 있습니다.
한계와 이 도구를 쓸 때 알아 둘 점
힌트와 최소 클릭 수는 현재 상태에서 정답까지의 최소 클릭 수를 계산한 결과입니다. 여러 해가 있을 때는 그중 클릭이 가장 적은 해를 고르지만, 같은 클릭 수의 해가 둘 이상일 수 있어 힌트로 나온 칸이 유일한 정답은 아닙니다. 이 게임은 기록을 저장하지 않으며, 새로고침하면 클릭 횟수와 힌트 사용 횟수가 모두 초기화됩니다. 제한 시간이나 점수 같은 순위 시스템은 없고, 클릭 수를 줄여 나가는 개인 도전용입니다.
활용법
처음에는 4×4에서 같은 퍼즐 다시 버튼으로 같은 문제를 반복하며 "어디를 눌렀더니 어디가 꺼졌다"를 눈에 익히고, 그다음 5×5에서 불 쫓아가기를 연습한 뒤 6×6에서 힌트 없이 끝까지 풀어 보는 순서를 권합니다. 마지막에 표시되는 최소 클릭 수와 내 클릭 수의 차이를 기록 삼아 줄여 나가 보세요.
자주 묻는 질문
모든 퍼즐이 항상 풀리나요?
네. 모두 꺼진 상태에서 무작위 클릭을 적용해 시작 패턴을 만들기 때문에 그 클릭을 되풀이하면 반드시 모든 전구를 끌 수 있습니다. 풀 수 없는 문제는 나오지 않습니다.
힌트는 정확한가요?
현재 상태를 기준으로 가우스 소거법으로 해를 구하고, 해가 여러 개면 클릭 수가 가장 적은 것을 골라 그중 한 칸을 표시합니다. 힌트 칸을 따라 누르면 그 해로 이어지지만, 클릭 수가 같은 다른 해도 있을 수 있습니다.
6×6이 더 어려운가요?
칸이 많아 손으로 계산하기는 더 복잡하지만, 어떤 시작 상태든 해가 정확히 하나로 정해진다는 점에서 구조는 오히려 깔끔합니다. 체감 난이도는 사람마다 다릅니다.
최소 클릭 수보다 적게 클리어할 수 있나요?
없습니다. 표시되는 최소 클릭 수는 시작 패턴에서 가능한 가장 적은 클릭 수이므로, 내 클릭 수가 그보다 적게 나올 수는 없습니다.
키보드나 터치로도 되나요?
마우스 클릭과 모바일 터치 모두 됩니다. 키보드 사용자는 Tab 키로 칸을 옮기고 Enter 또는 스페이스로 누르면 되며, 한 번 누른 뒤에도 같은 칸에 초점이 남아 있습니다.
다른 논리 퍼즐도 있나요?
노노그램 퍼즐 게임, 스도쿠 게임, 전구 배치 퍼즐, 색 채우기 퍼즐도 해 보세요.