예전에 스도쿠와 관련해 몇 개의 글을 남겼는데요(개요와 규칙, 풀이 예제 1, 풀이 예제 2), 이번에는 스도쿠 풀이를 돕는 보조 도구를 소개해 드릴까 합니다. 바로 스도쿠 헬퍼(Sudoku Helper)라고 이름 붙인 녀석입니다. 혹시라도 필요하신 분이 계시면 받아 가세요. ^ㅇ^
스도쿠 헬퍼를 만들게 된 동기는 단순합니다. 휴대폰이나 컴퓨터 등으로 스도쿠를 하는 경우, 대개는 각 칸에 들어갈 값에 대한 힌트를 작성할 수 있도록 하는 기능이 있습니다. 보통 아래 그림과 같이 보이게 됩니다.
하지만 그렇지 않은 경우, 그러니까 직접 신문이나 책 등을 통해서 게임을 해야 할 땐 이걸 손으로 일일이 기록하며 하는 일이 너무나 귀찮고 힘들다는 것이죠. 그래서 손으로 하는 수고로움을 조금이라도 덜 도구를 마이크로소프트(Microsoft)의 엑셀(Excel)을 이용하여 만들었습니다. 엑셀의 수식 기능을 이용한 것이죠.
물론 스도쿠 퍼즐을 아예 풀어 주는 프로그램도 있기는 한데, 그러면 손맛(?)이 떨어지잖아요. ㅎㅎ (스도쿠 퍼즐의 해법은 A Pencil-and-Paper Algorithm for Solving Sudoku Puzzles나 Sudoku Programming by keetekee 등에 잘 나와 있습니다.)
파일을 열면 다음과 같이 두 개의 테이블이 보입니다. 왼쪽 테이블은 퍼즐 자체의 값이 들어가는 칸을 보여 주고 오른쪽 테이블은 각 칸(셀)마다 후보가 되는 숫자들의 모임을 보여 주고 있습니다.
왼쪽 테이블에 간단한 스도쿠 문제를 입력해 보겠습니다. 그러면 오른쪽 테이블에는 각 칸(셀)마다 어떤 숫자가 후보가 될 수 있는지를 보여 줍니다.
만약 어떤 칸에 들어갈 후보 숫자가 하나 뿐이라면 그게 바로 답이죠. 다음 그림의 빨간색 칸(셀)이 바로 그런 경우를 보여 줍니다. 제가 엑셀 파일에 수식을 적용할 때 가장 간단한 알고리즘(Naked Single)만 찾을 수 있도록 해 두었기 때문에, 그림의 파란색 칸(셀)의 4처럼 실제로는 블럭 내에 후보가 단 하나만 존재하지만 그걸 표현하지 못하는 경우도 있습니다.
어쨌거나 그런 과정을 거쳐 모든 숫자를 다 입력하면 왼쪽 테이블은 가득 차고 오른쪽 테이블은 완전히 비게 됩니다. “빨래 끝~!”이 아니고 “풀이 끝~!&rdquo.
다만, 이 파일에는 가장 기본적인 룰(Naked Single)만 적용시켜 놓았기 때문에 고난이도의 트릭까지 찾아 내지는 못하며, 왼쪽 테이블에 잘못된 값을 집어 넣더라도 그 결과가 제대로 된 것인지 알려 주지 않는다는 점은 주의하셔야 합니다.
스도쿠 헬퍼를 만들게 된 동기는 단순합니다. 휴대폰이나 컴퓨터 등으로 스도쿠를 하는 경우, 대개는 각 칸에 들어갈 값에 대한 힌트를 작성할 수 있도록 하는 기능이 있습니다. 보통 아래 그림과 같이 보이게 됩니다.
하지만 그렇지 않은 경우, 그러니까 직접 신문이나 책 등을 통해서 게임을 해야 할 땐 이걸 손으로 일일이 기록하며 하는 일이 너무나 귀찮고 힘들다는 것이죠. 그래서 손으로 하는 수고로움을 조금이라도 덜 도구를 마이크로소프트(Microsoft)의 엑셀(Excel)을 이용하여 만들었습니다. 엑셀의 수식 기능을 이용한 것이죠.
물론 스도쿠 퍼즐을 아예 풀어 주는 프로그램도 있기는 한데, 그러면 손맛(?)이 떨어지잖아요. ㅎㅎ (스도쿠 퍼즐의 해법은 A Pencil-and-Paper Algorithm for Solving Sudoku Puzzles나 Sudoku Programming by keetekee 등에 잘 나와 있습니다.)
파일을 열면 다음과 같이 두 개의 테이블이 보입니다. 왼쪽 테이블은 퍼즐 자체의 값이 들어가는 칸을 보여 주고 오른쪽 테이블은 각 칸(셀)마다 후보가 되는 숫자들의 모임을 보여 주고 있습니다.
왼쪽 테이블에 간단한 스도쿠 문제를 입력해 보겠습니다. 그러면 오른쪽 테이블에는 각 칸(셀)마다 어떤 숫자가 후보가 될 수 있는지를 보여 줍니다.
만약 어떤 칸에 들어갈 후보 숫자가 하나 뿐이라면 그게 바로 답이죠. 다음 그림의 빨간색 칸(셀)이 바로 그런 경우를 보여 줍니다. 제가 엑셀 파일에 수식을 적용할 때 가장 간단한 알고리즘(Naked Single)만 찾을 수 있도록 해 두었기 때문에, 그림의 파란색 칸(셀)의 4처럼 실제로는 블럭 내에 후보가 단 하나만 존재하지만 그걸 표현하지 못하는 경우도 있습니다.
어쨌거나 그런 과정을 거쳐 모든 숫자를 다 입력하면 왼쪽 테이블은 가득 차고 오른쪽 테이블은 완전히 비게 됩니다. “빨래 끝~!”이 아니고 “풀이 끝~!&rdquo.
다만, 이 파일에는 가장 기본적인 룰(Naked Single)만 적용시켜 놓았기 때문에 고난이도의 트릭까지 찾아 내지는 못하며, 왼쪽 테이블에 잘못된 값을 집어 넣더라도 그 결과가 제대로 된 것인지 알려 주지 않는다는 점은 주의하셔야 합니다.
'기타' 카테고리의 다른 글
비주얼드(Bejeweled) (0) | 2010.01.04 |
---|---|
익스트림 팜플로나 (Extreme Pamplona) (2) | 2010.01.03 |
윈터벨즈 (Winterbells) (0) | 2009.12.30 |
주 키퍼 액티브(Zoo Keeper Active) (4) | 2009.12.27 |
주 키퍼(Zoo Keeper) (0) | 2009.12.26 |
일본 여친에게 프로포즈 받다 (0) | 2009.09.02 |
스도쿠(数独, Sudoku) - Revisited (0) | 2008.09.23 |
최홍만, 가수도 하는구나 (2) | 2008.01.20 |
주 키퍼(Zoo Keeper)의 재치있는 멘트 (8) | 2007.12.11 |
익스트림 팜플로나(Extreme Pamplona) (2) | 2007.11.16 |