Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. % A Prolog program to find people's lover
  2. % --------------------------------
  3.  
  4. man(george). man(jack). man(tony).
  5. woman(lucy). woman(fiona). woman(peggy).
  6.  
  7. % % A man can only fall in love with one woman
  8. % % Women are already in different rooms and they like to eat different foods
  9. uniq(A, B, C) :- woman(A), woman(B), woman(C), \+A=B, \+A=C, \+B=C.
  10.  
  11. % % Clue 1:Room1 has bananas, Peggy isn't in Room1
  12. clue1(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana) :-
  13. R1=Banana, \+R1=peggy.
  14.  
  15. % % Clue 2:Tony's lover likes orange,Lucy doesn't like Tony
  16. clue2(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana) :-
  17. Orange=TL, \+TL=lucy.
  18.  
  19. % % Clue 3:Fiono doesn't like bananas
  20. clue3(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana) :-
  21. Banana=fiona.
  22.  
  23. % % Clue 4:Jack's lover is in Room2 and she likes apple
  24. clue4(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana) :-
  25. JL=R2, JL=Apple.
  26.  
  27. % % Clue 5:Room3 has oranges
  28. clue5(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana) :-
  29. R3=Orange.
  30.  
  31. % % Show these people’s lover
  32. showLovers(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana) :-
  33. write("George’s lover is: "), write(GL), nl,
  34. write("Jack’s lover is: "), write(JL), nl,
  35. write("Tony’s lover is: "), write(TL), nl,
  36. write(R1), write(" in Room1"), nl,
  37. write(R2), write(" in Room2"), nl,
  38. write(R3), write(" in Room3"), nl,
  39. write(Apple), write(" likes apple"), nl,
  40. write(Orange), write(" likes orange"), nl,
  41. write(Banana), write(" likes banana"), nl.
  42.  
  43. % % Here we go
  44. findLovers(GL, JL, TL) :-
  45. uniq(R1, R2, R3),
  46. uniq(Apple, Orange, Banana),
  47. uniq(GL, JL, TL),
  48. clue1(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana),
  49. clue2(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana),
  50. clue3(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana),
  51. clue4(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana),
  52. clue5(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana),
  53. showLovers(GL, JL, TL, R1, R2, R3, Apple, Orange, Banana).
  54.  
  55. % % Answers:
  56. % % George loves Fiona(in Room1, she likes banana)
  57. % % Jack loves Lucy(in Room2, she likes apple)
  58. % % Tony loves Peggy(in Room3, she likes orange)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement