퍼즐은 이렇게됩니다 : 섬에는 4 개의 사원이 있습니다. 각 성전에는 그것이 지어 졌던 이름, 위치 및 날짜가 있습니다. 네 가지 조합 (이름, 위치, 날짜)이 올바른지 결정하는 데 도움이되는 4 가지 단서가 있습니다. 프롤로그를 사용하여이 문제를 해결해야합니다.프롤로그 그리드 기반 로직 퍼즐이 붙어
사원의 이름은 hori_takesi, okabe honzo, sama takako 및 takahashi입니다. 위치는 Funai, Toyagi, Uchida 및 Usui입니다. 하나는 마에게 타카코을이고 다른 하나는 오카베이며, 우치다의 신사와 1645 년에 지어진 성전의
- : 날짜는 1525, 1585, 1645 및 다음과 같은 단서를 제공하는 1705
있습니다 혼조.
- 나이의 사원 toyagi의 성전이 120년 우스
- 호리의 성전 이전에 건축 된 다카하시
- 전에 지어진 takesi WASA
temple(hori_takesi, Location, Y).
temple(okabe_honzo, Location, Y).
temple(sama_takako, Location, Y).
temple(takahashi, Location, Y).
temple(Name, funai, Y).
temple(Name, toyagi, Y).
temple(Name, uchida, Y).
temple(Name, usui, Y).
temple(Shrine, Location, 1525).
temple(Shrine, Location, 1585).
temple(Shrine, Location, 1645).
temple(Shrine, Location, 1705).
프롤로그를 요청할 쿼리는? -solution (X)입니다. 이것은 4 가지 모든 올바른 조합을 반환해야합니다. 그래서 X는 4 개의 요소, 즉 사원의 목록입니다.
용액 (X). 모든 단서가 사실이라면 사실이됩니다.
clue1(X) :- temple(Name, uchida, Y), Y\= 1645
clue2(X) :- temple(Name, funai, Y), temple(Shrine, takahashi, Y1), Y < Y1.
clue3(X) :- temple(Name, toyagi Y), temple(Shrine, usui, Y1). Y1 is Y + 120.
clue4(X) :- temple(hori_takesi, Loc, Y), temple(sama_takako, Loc, Y1) Y > Y1.
solution(X) :- clue1(X), clue2(X), clue3(X), clue4(X).
여기에서 onwarts을 진행하는 방법을 잘 모르겠어요 : 그래서 나는 다음과 같은했다. 또 다른 팁은 member/2를 사용하는 것입니다. 그러나 그것을 구현하는 방법에 대해 잘 모르겠습니다. 누군가가 나를 도울 수 있으면 사랑해.
사마 타카코 이후에 지어진 – damianodamiano
@damianodamiano : 고급 도구를 배우기 전에 더 나은 OP가 기초를 배웁니다. CLP (FD) 그것은 [누수 추상화] (https://en.wikipedia.org/wiki/Leaky_abstraction)입니다. 귀하의 술어에서 무슨 일이 일어나고 있는지를 모른 채 사용할 수는 없습니다 ... – CapelliC
질문 제목에서 a 당신의 시도에서 빠진 근본적인 세부 사항. 변수가 함께 재생할 수있는 단일 술어로 * 그리드를 모델링해야합니다. 모든 단서는 그리드 행의 일부 하위 세트에서 작동합니다. 각 행은 엔티티를 나타 내기 때문입니다. – CapelliC