есть перечень населенных пунктов, которые связаны определенным видом транспорта. требуется получить подробный путь из пункта А в пункт Б , если такое путешествие возможно
pass(auckland, hamilton, bus).
pass(bangkok, auckland, plane).
pass(frankfurt, bangkok, plane).
pass(frankfurt, singapore, plane).
pass(hamilton, raglan, bus).
pass(losAngeles, auckland, plane).
pass(metz, frankfurt, train).
pass(metz, paris, train).
pass(paris, losAngeles, plane).
pass(saarbruecken, frankfurt, train).
pass(saarbruecken, paris, train).
pass(valmont, metz, bus).
pass(valmont, saarbruecken, bus).
travel(X,Y) :-
pass(X, Y, T) ->
write([T, X, Y]), ! , nl ;
pass(X, Z, T1) ,
pass(Z, Y, T2) ->
write([T1, X, Z, T2, Z, Y]), !, nl ;
pass(X, Z1, T1) ,
pass(Z1, Z2, T2) ,
pass(Z2, Y, T3) ->
write([T1, X, Z1, T2, Z1, Z2, T3, Z2, Y]), !, nl ;
pass(X, Z1, T1) ,
pass(Z1, Z2, T2) ,
pass(Z2, Z3, T3) ,
pass(Z3, Y, T4) ->
write([T1, X, Z1, T2, Z1, Z2, T3, Z2, Z3, T4, Z3, Y]), !, nl .
No comments:
Post a Comment