재미있게 Warnsdorf의 규칙을 사용하여 gprolog에서 Knight 's Tour (https://en.wikipedia.org/wiki/Knight%27s_tour) 솔버를 작성하려고 시도했습니다.b-prolog의 표제어를 gprolog로 번역
나는 B-prolog에서 해결책을 제시 한 다른 SO 게시물을 찾았습니다. knight's tour efficient solution.
내 문제는 다음과 같은 섹션 발생 :
:- table warnsdorff(+,+,+,+,+,-,-,min).
warnsdorff(R, C, X, Y, Visits, NewX, NewY, Score) :-
possible_knight_moves(R, C, X, Y, Visits, NewX, NewY),
possible_moves_count(R, C, NewX, NewY, [(NewX, NewY) | Visits], Score).
B-프롤로그 기능은 술어를 상정하고 gprolog하지 않습니다. 테이블 섹션을 gprolog로 변환하는 데 많은 어려움을 겪고 있습니다. 실제로이 함수는 현재 위치에서 이동하여 최소 개의 새 위치에서 가능한 이동 수를 반환합니다 (매듭은 무작위로 선택됩니다).
도움을 주시면 감사하겠습니다. 건배!
"기사의 여행 프롤로그"에 대해 Dr. Google에 문의하십시오. 많은 솔루션이 있습니다. – false
"재미있게"비슷한 질문이 나를이 asignment 생각하고 있습니다 (참조 http://stackoverflow.com/questions/43622353/gprolog-knights-tour-using-warnsdorffs-rule 및 http : // stackoverflow. com/questions/43628413/나이트 - 움직임 - 사용 - 프롤로그) – Rafalon