-2
near(a1,b1). near(b1,c1). near(c1,d1). near(d1,e1). near(e1,f1).
near(f1,g1). near(a1,a2). near(a2,a3). near(a3,a4). near(a4,a5).
near(a5,a6). near(a6,a7). near(a7,a8). near(a8,a9). near(b1,b2).
near(b2,b3). near(b3,b4). near(b4,b5). near(b5,b6). near(b6,b7).
near(b7,b8). near(b8,b9). near(c4,d4). near(d1,e4). near(e4,f4).
near(f4,g4). near(g4,h4). near(g1,g2). near(g2,g3). near(g3,g4).
near(f4,f5). near(f5,f6). near(f6,f7). near(f7,f8). near(f8,f9).
near(a6,b6). near(b6,c6). near(a9,b9). near(b9,c9). near(c9,d9).
near(d9,f9). near(f9,g9). near(g9,h9). near(h9,i9).
path(X,X).
path(X,Y):-
near(X,Z), path(Z,Y),
write(X),
write('->'),
write(Z).
maze(X,Y):-findall(X,path(X,Y),Path_List),write(Path_List).
這是尋找迷宮。解決一個特定的循環
我想打印出這樣的
Route1 [18] a1 -> b1 -> c1 -> d1 -> e1 -> f1 -> g1 -> g2 -> g3 -> g4 -> h4 -> h5 -> h6 -> h7 -> h8 -> h9 -> i9
,並顯示其他4路。
我想用cut?或回溯。但是我不能碰這個代碼。