1년 반을 넘게 미룬 글입니다. 조작은 없었습니다.
이걸 어떻게 처리할지 고민했는데, 당시에 블로그도 있던 제가 왜 이걸 올릴 생각을 안 했는지...
이걸 어떻게 처리할지 고민했는데, 당시에 블로그도 있던 제가 왜 이걸 올릴 생각을 안 했는지...
입체 퍼즐의 대표주자, 소마큐브(Soma cube)를 다들 알고 계실 겁니다.
위키백과(ko) - 소마 큐브 / Wikipedia(en) - Soma cube
지난 2009년 6월경으로 기억하는데, 과학동아에서 소마큐브를 나름대로 업그레이드한 것을 내놓았으니,
소위 '창의블록'입니다. 한때 광고도 많았고 말도 많았죠.
서울 학생과학축전에서 창의블록 맞추기 대회도 있었습니다. (Daum 기사)
(시앙스몰의 창의블록 판매 페이지 여기)
그리고 창의블록 열기가 한창일 때 과학동아의 시앙스몰에서 이벤트를 열었으니... (해당 페이지 broken)
(c) 과학동아(dongascience.com), 시앙스몰(scimall.com). 모든 권리 보유. 인용과 보존의 의미에서 옮겨 둡니다.
바로 "난제를 풀어라!"(미지의 난제풀면 상금 60만원이 쏟아진다!) 이벤트.
그냥 봐도 '난제'라는 것을 세 개 주고 상금을 노리는 아이들에게 창의블록을 팔 생각인데...
아래는 당시 학교에서 과학동아를 받아읽은 저와 제 친구의 대화입니다.
나: 야, 이게 뭐냐?
친구: 창의블록? 과학동아에서 뭐 하나 만들었네.
나: 이름도 사고 싶게 만드느라 애썼다... 게다가 이벤트까지.
친구: 야, 그래도 벌써 60만원 정도는 쓸 정도로 벌었나보다.
나: 사실 이런 거 풀기야 일도 아니지. 인터넷에 프로그램도 있을걸?
친구: 진짜? 그럼 우리가 60만원 갖는 거야?
나: 글쎄... 사실 내가 게을러서.
친구: 그보다는 이 문제 좀 수상한데?
나: 왜?
친구: 난제라기에는 상금이 좀 적지 않냐...?
나: 글쎄. 혹시 안 풀리는 문제 아닐까? ㅋㅋㅋㅋ
친구: 소비자 우롱이네 ㅋㅋㅋㅋㅋㅋㅋㅋ
나: 하긴 의미 있는 문제라면 상금이 좀 더 컸겠지...
친구: 아니면 수학자들이 진작에 풀었거나...
나: ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
친구: ㅋㅋㅋㅋㅋㅋㅋㅋ
친구: 창의블록? 과학동아에서 뭐 하나 만들었네.
나: 이름도 사고 싶게 만드느라 애썼다... 게다가 이벤트까지.
친구: 야, 그래도 벌써 60만원 정도는 쓸 정도로 벌었나보다.
나: 사실 이런 거 풀기야 일도 아니지. 인터넷에 프로그램도 있을걸?
친구: 진짜? 그럼 우리가 60만원 갖는 거야?
나: 글쎄... 사실 내가 게을러서.
친구: 그보다는 이 문제 좀 수상한데?
나: 왜?
친구: 난제라기에는 상금이 좀 적지 않냐...?
나: 글쎄. 혹시 안 풀리는 문제 아닐까? ㅋㅋㅋㅋ
친구: 소비자 우롱이네 ㅋㅋㅋㅋㅋㅋㅋㅋ
나: 하긴 의미 있는 문제라면 상금이 좀 더 컸겠지...
친구: 아니면 수학자들이 진작에 풀었거나...
나: ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
친구: ㅋㅋㅋㅋㅋㅋㅋㅋ
그리고 당일, 집에 오자마자 저는 Somatic이라는 프로그램을 찾아냈습니다. (Somatic @ moerig.com)
Somatic (2004년 4월 6일 빌드 기준)
큐브 섹션 기반의 입체 퍼즐을 풀기 위한 프로그램.
C++로 쓰였으며 OpenGL을 채용, GPL 기반 오픈소스.
윈도우 용 빌드에는 guisoma.exe, txtsoma.exe, cygwin.dll 및 예제 파일이 있다.
Somatic puzzles (*.pzl)라는 텍스트 기반의 자체 파일 포맷을 갖고 있다.
아래는 guisoma.exe의 초기 실행 화면. somatic2.pzl의 풀이를 보여준다.
큐브 섹션 기반의 입체 퍼즐을 풀기 위한 프로그램.
C++로 쓰였으며 OpenGL을 채용, GPL 기반 오픈소스.
윈도우 용 빌드에는 guisoma.exe, txtsoma.exe, cygwin.dll 및 예제 파일이 있다.
Somatic puzzles (*.pzl)라는 텍스트 기반의 자체 파일 포맷을 갖고 있다.
오픈소스 프로그램 Somatic의 실행 파일 guisoma.exe의 초기 상태. 이하 Windows Vista에서 그림판(mspaint.exe)로 잡은 화면. Microsoft가 특허를 가진 디자인 포함.
- 왼쪽의 가장 큰 검은 박스가 풀이를 3차원으로 보여주는 화면.
마우스 왼쪽 버튼을 누른 채 드래그하면 풀이를 돌려 볼 수 있고,
오른쪽 버튼을 누른 채 드래그하면 풀이를 조각별로 해체해 볼 수 있다. - 오른쪽에는 많은 기능을 가진 버튼이 늘어서 있다.
- 위에서 첫 번째 버튼은 초기화 버튼. 큐브 조각이 하나만 남고, 화면상의 '조립되어야 할' 퍼즐 모양을 만들 수 있다. 화면의 큐브를 클릭하면 클릭한 곳에 큐브가 하나 더 붙는다.
- 두 번째 버튼은 풀이 비활성화. 풀이의 수를 늘리거나 줄인 후 다시 찾아야 할 때 일단 풀이를 비활성화해야 한다.
- 세 번째는 무작위 찾기와 풀이 수.
- 네 번째는 풀이 찾기. 한정된 풀이 수 내에서 풀이를 찾아 블럭별로 다른 색으로 표시한다.
- 다섯 번째는 (프로그램의 풀이 순서대로) 이전 풀이와 다른 풀이.
- 여섯 번째는 불러오기. *.pzl 파일에 저장된 블럭과 퍼즐을 불러온다.
- 일곱 번째는 저장하기. 초기화 이후 화면의 퍼즐을 편집하고 풀이할 수 있는데, 새로 구성한 퍼즐을 저장할 수도 있다.
- 여덟 번째는 조각 보기.
- 아래쪽의 상태 막대에는 대기/풀이 상태, 조각의 수, 화면에 있는 큐브 수와 조각 전체의 큐브 수, 풀이의 수와 현재 보고 있는 풀이의 번호가 나타난다.
그래서 저는 일단 *.pzl 파일을 분석한 후에 세 개의 pzl 파일을 만들었습니다.
pzl 파일 별 거 없더군요. 3차원 배열입니다. 블럭 정보 여러 개와 퍼즐 정보 하나.
그래서 일단 3x3x3.creative.pzl을 만들고,
정상적인 창의블록 구성인지 확인해 본 후,
여기서 블럭을 몇 개 빼서 3x3x3.creative.prob1.pzl 등등을 만들었습니다.
그리고 이 파일들을 프로그램으로 열어 본 결과는 어땠을까요... (말하지 않아도 우리~)
결론: 고작 6만원 걸었지만 몰랐을 리가 없죠. 호객용 이벤트에는 알고 달려듭시다.
* 참고로, 이런 블럭 집합으로 퍼즐을 풀 수 있는지 증명하는 것은 수학적으로 충분히 가능한 일입니다.
1년 넘게 가만 있던 링크가 하필 글 쓴 직후에 깨지는 건 과연 그냥 운이 안 좋을 걸까요?
'Views > Underview' 카테고리의 다른 글
내 소스인 줄 알았네 (0) | 2013.05.26 |
---|---|
왜 구글이 잘나가나요 (0) | 2013.04.07 |
휴대전화의 전자파가 뇌를 익힌다고? (2) | 2011.06.03 |