Facebook
From twojstary, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 119
  1. gallery(bielany, bemowo, 4).
  2. gallery(bielany, zoliborz, 3).
  3. gallery(bemowo, wola, 2).
  4. gallery(bemowo, zoliborz, 3).
  5. gallery(zoliborz, pragan, 5).
  6. gallery(zoliborz, srodmiescie, 1).
  7. gallery(wola, srodmiescie, 1).
  8. gallery(wola, ochota, 2).
  9. gallery(wola, wlochy, 4).
  10. gallery(srodmiescie, pragan, 5).
  11. gallery(srodmiescie, pragas, 5).
  12. gallery(srodmiescie, ochota, 4).
  13. gallery(srodmiescie, mokotow, 2).
  14. gallery(wlochy, ursus, 1).
  15. gallery(wlochy, ursynow, 3).
  16. gallery(ochota, mokotow, 2).
  17. gallery(ochota, ursynow, 3).
  18. gallery(ursynow, wilanow, 3).
  19. gallery(wilanow, mokotow, 4).
  20. gallery(wilanow, wawer, 5).
  21. gallery(mokotow, wawer, 5).
  22. gallery(pragan, targowek, 2).
  23. gallery(pragan, pragas, 2).
  24. gallery(pragas, targowek, 3).
  25. gallery(pragas, wawer, 4).
  26. gallery(bemowo, ursus, 2).
  27.  
  28.  
  29. % Graf nieskierowany
  30. neighborroom(X, Y, W) :- gallery(X, Y, W).
  31. neighborroom(X, Y, W) :- gallery(Y, X, W).
  32.  
  33. % Lista węzłów zakazanych
  34. avoid([pragas, pragan, targowek]).
  35.  
  36. route(End, End, _, 0, VisitedRooms, 0) :-
  37.     member(End, VisitedRooms),
  38.     reverse(VisitedRooms, Path),
  39.     write(Path), nl.
  40. route(Start, End, StartWeight, TotalWeight, VisitedRooms, FinalWeight) :-
  41.     neighborroom(Start, Next, Weight),
  42.     avoid(DangerousRooms),
  43.     \+ member(Next, DangerousRooms),
  44.     \+ member(Next, VisitedRooms),
  45.     NewWeight is StartWeight + Weight,
  46.     route(Next, End, NewWeight, TotalWeight, [Next|VisitedRooms], FinalWeight1),
  47.     FinalWeight is Weight + FinalWeight1.
  48.