CLPFD를 사용하여 End View Puzzles의 솔버를 작성하려고합니다. 익숙하지 않은 사용자는 http://www.funwithpuzzles.com/2009/12/abcd-end-view-a1.html입니다. 각 행/열에 적용하고 몇 가지 문제가있는 제약 조건을 다루고 있습니다. 꽤 정직하고 있습니다 그래서 처음 3 단계End View Puzzle, Prolog
% NxN board, numbers from 0 to M in the row, Left/Right are the clues
% corresponding to the row
endviews(N,M,List,Left,Right):-
length(List,M),
domain(List,0,M),
stop_repeats(List,M),
left_value(List,M,Left),
reverse(List,RList),
left_value(RList,M,Right)
.
을 : 도메인을 설정, 보드를 초기화하고 있는지 확인하는 것이이 행하지 않습니다
그래서 나는 이런 식으로 뭔가를 찾아야한다 생각하고 있어요0
이 아닌 반복 번호 (
stop_repeats/2
술어를 작성했습니다). 내가 만나는 문제는
left_value/3
술어를 다루는 것입니다. 목록의 대부분은 제약이 없기 때문에이 첫 번째 긍정적 인 요소의 위치를 실제로 알지 못하기 때문에 여기서 어떻게 진행해야할지 모르겠습니다. 도움이 될 것입니다.
'left_value'는 내 대답에'start'와 유사해야합니다. – CapelliC