Advertisement
Guest User

Untitled

a guest
Apr 30th, 2022
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. rider(girl(daisy)). rider(girl(stella)). rider(boy(jim)).
  2. cause(fell). cause(buckled). cause(punctured).
  3. local(hospital). local(library). local(river).
  4. % 0="last" , 1="2nd from last", 2="3nd from last"
  5. place(0). place(1). place(2).
  6. unique([]).
  7. unique([X|Xs]) :- \+ memberchk(X,Xs),unique(Xs).
  8. gen_sets(S1,S2,S3) :-
  9. rider(R1),rider(R2),rider(R3),unique([R1,R2,R3]),
  10. cause(C1),cause(C2),cause(C3),unique([C1,C2,C3]),
  11. local(L1),local(L2),local(L3),unique([L1,L2,L3]),
  12. place(P1),place(P2),place(P3),unique([P1,P2,P3]),
  13. S1=(R1,C1,L1,P1),S2=(R2,C2,L2,P2),S3=(R3,C3,L3,P3).
  14. r1(Solution) :- \+ member((girl(_),fell,_,_),Solution).
  15. r2(Solution) :-
  16. findall(X,place(X),Placelist),
  17. max_list(Placelist,DaisyPlace),
  18. member((girl(daisy),_,_,DaisyPlace),Solution).
  19. r3(Solution) :-
  20. findall(X,place(X),Placelist),
  21. min_list(Placelist,LastPlace),
  22. RiverPlace is LastPlace+1,
  23. member((_,_,river,RiverPlace),Solution).
  24. r4(Solution) :-
  25. member((girl(stella),buckled,library,_),Solution).
  26. solve(Solution) :-
  27. length(Solution,3),
  28. gen_sets(
  29. (R1,C1,L1,P1),
  30. (R2,C2,L2,P2),
  31. (R3,C3,L3,P3)),
  32. member((R1,C1,L1,P1),Solution),
  33. member((R2,C2,L2,P2),Solution),
  34. member((R3,C3,L3,P3),Solution),
  35. r1(Solution), r2(Solution),
  36. r3(Solution), r4(Solution), !.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement