%% findpath([0,0],[1,1],3,[[[0,0],[1,0]],[[1,0],[1,1]]],Path). %% Path = [[0, 0], [1, 0], [1, 1]] ; %% can go backwards on links, delete used links, don't go to a previous point %% * findpath(Start,End,Max_steps,Path_links,Path) :- findpath(Start,End,Path_links,_,[Start],Path), length(Path,Steps), Max_steps>=Steps. findpath(End,End,_,_,Path,Path). findpath(Start,End,Path_links,Pathlinks3,Path1,Path2) :- delete(Path_links,[Start,Next],Pathlinks2), append(Path1,[Next],Path3), findpath(Next,End,Pathlinks2,Pathlinks3,Path3,Path2).