2012-03-24 6 views
2

퍼즐 해결에 문제가 있습니다. 나는이 퍼즐에 대한 해결책을 어디서든지 발견하지 못했지만 Prolog에 써 보려고했지만 내 솔루션이 빠르지 않을 것이라고 생각합니다 (모든 솔루션을 생성하고 가능하지 않거나 정확하지 않은 경우 삭제합니다). 이것은 내 문제입니다 : (그 퍼즐의 이름을 발견했습니다. 여기 퍼즐의 모든 규칙을 가진 링크가 있습니다 : http://en.wikipedia.org/wiki/Kuromasu). 이제는 다른 질문이 있습니다.이 방법은 매우 쉽게 작성하고 Prolog에서 매우 빨리 해결할 수 있습니다. 필드 목록을 무향 그래프로 변환하는 방법에 대해 생각해 보았습니까? 아니면 세로로 머리글을 뒤집어 쓰는 다른 방법이 있습니까?Prolog에서 로직 퍼즐 (쿠로마 스, 검은 색 셀은 어디에 있는가?)을 해결합니다.

0, 0, 0, 5, 0, 0, 0 
0, 5, 0, 0, 0, 0, 2 
0, 0, 0, 0, 7, 0, 4 
0, 0, 0, 0, 0, 0, 0 
8, 0, 13,0, 0, 0, 0 
5, 0, 0, 0, 0, 6, 0 
0, 0, 0, 8, 0, 0, 0 

결과 :에서

0, #, 0, 5, 0, 0, # 
0, 5, 0, 0, 0, #, 2 
0, #, 0, #, 7, 0, 4 
#, 0, 0, 0, 0, 0, # 
8, 0, 13,0, 0, 0, 0 
5, 0, 0, 0, #, 6, 0 
#, 0, 0, 8, 0, 0, # 
+0

퍼즐에 대한 이름이나 링크가 있습니까? 제목은별로 좋지 않습니다. –

+0

나는이 퍼즐의 이름을 찾으려고 노력했지만, 나는 모른다. 더 명확하게하기 위해 제목을 어떻게 바꿀 수 있습니까? –

+0

퍼즐의 이름은 시작일 것입니다 :-) "Prolog에서 XYZ를 해결 하시겠습니까?" 여기서 XYZ는 퍼즐 이름 또는 퍼즐 원형입니다. –

답변

4

퍼즐의 유형은 Kuromasu이라고합니다. 다음은 SWI-Prolog 및 유한 도메인 제약으로 해결하는 페이지입니다. http://jfoutelet.developpez.com/articles/kuromasu/

+1

대단히 감사합니다. 그 정보는 매우 유용합니다. 하지만 또 다른 문제가 있습니다. 프랑스어를 이해하지 못하고, #_ 술어처럼 사용할 수 없습니다. –