지뢰찾기는 기억력 게임처럼 보이지만, 해 보면 논리 퍼즐이에요. 열린 칸마다 숫자가 나오는데, 주변 여덟 칸 중 몇 칸에 지뢰가 숨어 있는지를 알려 줘요. 그 숫자로 지뢰 위치를 추리해 깃발을 꽂고, 나머지를 모두 열면 돼요. 좋은 소식은 추리의 대부분이 10분이면 익힐 수 있는 패턴 네 개 정도로 정리된다는 거예요.
뺄셈부터 시작하세요
패턴보다 먼저 들일 습관이 하나 있어요. 숫자에서 깃발 수를 뺀 값이 아직 찾아야 할 지뢰 수예요. 깃발 두 개가 맞닿은 3은 사실상 1이에요. 깃발 두 개가 맞닿은 2는 0이고, 그 칸의 나머지 주변 칸은 모두 안전하니 전부 여세요.
마지막 경우에 쓰는 게 바로 한 번에 열기(코딩)예요. 숫자가 깃발로 완전히 채워졌을 때 그 숫자를 클릭하면 남은 주변 칸이 한 번에 다 열려요. 휴대폰에서는 숫자를 탭하면 돼요. 깃발을 믿을 수 있게 되면, 4분 걸리던 판이 90초로 줄어드는 게 바로 이 한 번에 열기 덕분이에요.
패턴 1: 벽에 붙은 1-1
1 두 개가 나란히 있고, 첫 번째 1이 판의 가장자리(또는 이미 열린 칸)에 붙어 있으며, 그 너머로 덮인 칸이 한 줄 있는 경우예요.
| a b c
| 1 1 ·
| · · · ← |는 판의 가장자리, ·는 열린 칸
왼쪽 1은 벽에 붙어 있어서 덮인 이웃이 a와 b뿐이에요. 즉 둘 중 한 곳에 지뢰가 정확히 하나 있어요. 오른쪽 1은 a, b, c에 닿아 있고, 역시 지뢰가 정확히 하나 필요해요. 그 지뢰는 이미 a나 b 안에서 해결됐으니 c는 안전해요. 열면 돼요. 이 패턴만으로는 a와 b 중 어디에 지뢰가 있는지 알 수 없지만, 보통은 줄을 따라 다음 숫자가 정리해 줘요.
같은 논리가 가장자리 전체를 따라 적용돼요. 어떤 숫자의 덮인 칸이 이웃 숫자의 덮인 칸에 모두 포함되고 두 숫자가 같다면, 이웃 숫자만 볼 수 있는 칸은 안전해요.
자주 나오는 따름 규칙도 있어요. 열리지 않은 이웃이 딱 한 칸뿐인 1이라면, 그 칸은 지뢰예요. 생각할 것도 없어요.
패턴 2: 1-2-1
? ? ?
1 2 1
2는 위쪽 세 칸 중 두 칸에 지뢰가 필요해요. 왼쪽 1은 그중 앞의 두 칸에 닿아 있고 지뢰 하나가 필요하며, 오른쪽 1은 뒤의 두 칸에 닿아 있고 역시 하나가 필요해요. 세 숫자를 모두 만족하는 배치는 첫 번째와 세 번째 칸에 지뢰가 있고 가운데 칸이 안전한 경우뿐이에요. 가장 많은 판을 풀어 주는 패턴이고, 몇 번 보고 나면 격자 어디에 있든 한눈에 찾아낼 수 있어요.
패턴 3: 1-2-2-1
? ? ? ?
1 2 2 1
숫자 넷, 덮인 칸 넷이에요. 바깥에서 안쪽으로 풀어 가세요. 왼쪽 1은 12번 칸에 지뢰 하나가 필요하고, 왼쪽 2는 13번 칸에 지뢰 둘이 필요해요. 그 차이만큼 3번 칸은 지뢰여야 해요. 대칭으로 2번 칸도 지뢰예요. 그러면 양쪽 1은 각각 그 지뢰 하나로 채워지니 1번과 4번 칸은 안전하고, 지뢰는 가운데 두 칸에 있어요.
패턴 4: 벽을 공유하는 1-2
1과 2가 붙어 있고 2의 덮인 이웃이 1보다 하나 더 많다면, 그 남는 칸이 지뢰예요. 앞에서 본 뺄셈과 같은 논리예요. 1이 맡는 지뢰가 무엇이든 2에는 하나가 더 필요하고, 그게 들어갈 곳은 1이 볼 수 없는 칸뿐이니까요.
이 네 가지면 국소 추리의 대부분을 해결할 수 있어요. 남는 건 전역 추리, 즉 남은 지뢰 수와 열리지 않은 칸 수를 비교하는 건데 이건 막판에 중요해져요. 그리고 지뢰찾기에 나쁜 평판을 안겨 준 그것이 남아요.
동전 던지기, 그리고 그게 생기는 이유
원조 게임과 대부분의 클론에서는 지뢰를 무작위로 배치해요. 무작위 배치는 어떤 패턴으로도, 아무리 세어 봐도 풀 수 없는 상황을 꽤 자주 만들어요. 구석에 덮인 칸 두 개, 그 사이에 지뢰 하나, 그리고 판 어디에도 그중 한 칸에만 닿는 숫자가 없는 상황이요. 찍으라는 거죠. Expert 판에서는 20분 동안 깔끔하게 풀던 판이 50대50으로 끝나는 일이 다들 인정하고 싶은 것보다 훨씬 자주 일어나요.
그건 난이도 설정이 아니에요. 생성기가 포기한 거예요.
“찍기 없음”이 실제로 뜻하는 것
저희 지뢰찾기는 모든 판을 만들 때 솔버를 함께 돌려요. 지뢰를 배치하면 논리 솔버가 위에서 본 추리만으로 판을 끝내 보고, 막히면 생성기가 경계선의 지뢰 하나를 옮겨 다시 시도해요. 첫 클릭부터 마지막 깃발까지 판 전체를 추리로 풀 수 있을 때까지요. 그래야만 판이 플레이어에게 전달돼요.
이 차이는 구호가 아니라 측정할 수 있는 결과예요. 일반적인 무작위 배치로 60판을 만들어 같은 솔버를 돌려 봤더니 60판 중 29판이 적어도 한 번은 찍기를 요구했어요. 솔버를 함께 돌리면 그 수는 0이고, 판을 깨면 결과 카드에도 그렇게 표시돼요.
세 가지 크기는 각자 다른 역할을 해요. Easy는 9×9에 지뢰 10개로 위의 패턴을 익히는 단계예요. Medium은 16×16에 40개로, 한 번에 열기가 빛을 발하기 시작해요. Hard는 30×16에 지뢰 99개로, 경계선이 길어져서 어느 쪽 끝부터 풀지 골라야 해요. 첫 클릭은 항상 안전하고 항상 넓은 영역이 열리니, 시작부터 동전 던지기가 될 일도 없어요. 모두에게 똑같은 데일리 판도 하나 있어서, 매일 돌아오면 연속 기록이 쌓여요.
짧은 역사
지뢰찾기의 조상은 1960년대 메인프레임 게임까지 거슬러 올라가지만, 모두가 아는 버전은 마이크로소프트의 로버트 도너(Robert Donner)와 커트 존슨(Curt Johnson)이 만들어 1990년 Windows Entertainment Pack에 실었고, 1992년 Windows 3.1에 기본으로 들어갔어요. 비공식적인 목적은 한 세대의 사무직 직원들에게 좌클릭과 우클릭을 자신 있게 쓰는 법을 가르치는 거였어요. Windows 8 전까지 모든 Windows에 들어 있었기 때문에, 서른 넘은 사람이라면 거의 다 마지막 한 칸에서 판을 날린 기억이 하나쯤 있어요.
여기서 플레이하기
클래식 규칙, 클래식 숫자 색, 솔버로 검증한 판, 그리고 안전하다고 증명할 수 있는 칸만 열어 주는 힌트 버튼까지 갖췄어요. Easy에서 시작해 1-2-1을 익히고, 패턴이 뻔하게 느껴지기 시작하면 한 단계 올려 보세요.