遊び方 · asobikata
게임 방법
Hashiwokakero(橋をかけろ, “다리를 놓아라!”)는 Nikoli가 펴낸 논리 퍼즐이에요. 모든 섬을 다리로 연결하되, 각 섬의 다리 수가 섬에 적힌 숫자와 같아야 해요.
다리 수 세기
섬의 숫자는 그 섬에 연결되는 다리의 개수예요.
하나 또는 둘
섬은 나무 다리 하나 또는 주홍색 다리 두 개로 이을 수 있고, 그 이상은 안 돼요.
곧게, 교차 없이
다리는 가로나 세로로 놓이며 다른 다리나 섬과 교차하면 안 돼요.
하나의 군도
마지막에는 모든 섬에서 다른 모든 섬으로 갈 수 있어야 해요.
완성된 퍼즐
조작법 操作
두 섬 사이의 물을 클릭하면 다리가 놓이고, 다시 클릭하면 두 번째 다리, 세 번째 클릭하면 사라져요.
섬에서 이웃 섬 쪽으로 드래그하거나, 두 섬을 차례로 클릭해도 돼요.
우클릭 / Shift + 클릭으로 다리를 지워요.
Ctrl Z 실행 취소 · Ctrl Y 다시 실행 · H 힌트
완성된 섬은 초록색, 다리가 넘치는 섬은 빨간색이 돼요. 막혔나요? SAT 솔버에게 힌트나 다리 확인을 부탁하세요.
작동 원리 仕組み
이웃한 두 섬 사이에 놓일 수 있는 모든 다리 e는 두 개의 불리언 변수를 가져요: e₁(다리가 하나 이상)과 e₂(두 번째 다리). 그리고 e₂ → e₁을 두어 모든 배치가 정확히 하나의 모델을 갖게 해요.
¬e₂ ∨ e₁숫자가 n인 섬은 자기 변수 중 정확히 n개가 참이어야 하며, 이를 모든 조합에 대한 절로 표현해요. 교차하는 다리는 서로를 배제해요:
¬h₁ ∨ ¬v₁연결성은 CNF로 표현하기 어려워서 지연 방식으로 추가해요. 솔버가 서로 떨어진 섬 그룹을 돌려줄 때마다, 그 그룹 밖으로 다리를 요구하는 절을 추가하고 솔버를 다시 실행해요.
생성기는 무작위 군도를 키운 뒤, 찾은 해답을 막고 솔버에게 다른 해답을 찾게 해서 유일성을 증명해요. 여러 솔버 모드는 실험실에서 시험해 보세요.
よくある質問 · FAQ
하시에 대해 자주 묻는 질문
- 하시(Hashiwokakero)는 무엇인가요?
- Hashiwokakero(橋をかけろ, “다리를 놓아라”)는 Bridges 또는 Hashi라고도 불리는, Nikoli가 펴낸 일본의 논리 퍼즐이에요. 격자에 숫자가 적힌 섬들이 있고, 이를 가로·세로 다리로 연결해요. 모든 섬은 숫자만큼의 다리를 가져야 하고, 다리는 교차하지 않으며, 모든 섬이 하나로 연결되어야 해요.
- 두 섬 사이에 다리를 몇 개 놓을 수 있나요?
- 최대 두 개예요. 같은 행이나 열에 있고 사이에 아무것도 없는 두 섬을 다리 하나 또는 두 개로 이을 수 있어요.
- 다리끼리 교차할 수 있나요?
- 아니요. 다리는 가로나 세로로 곧게 놓이며, 다른 다리와 교차하거나 섬 위를 지날 수 없어요.
- 모든 섬을 연결해야 하나요?
- 네. 완성된 퍼즐에서는 다리를 건너 어느 섬에서든 다른 모든 섬으로 갈 수 있어요. 섬들은 하나의 네트워크를 이뤄요.
- 해답은 항상 하나뿐인가요?
- Hashi에서는 그래요. 생성된 모든 퍼즐은 SAT 솔버가 검사해 두 번째 해답이 없음을 증명하므로, 절대 찍을 필요가 없어요.