Prolog Diners Problem Worksheet With Answers - Dr. Philip Cannata Page 4

ADVERTISEMENT

Prolog Diners Problem – Partial Solution 3
places([place(_,0), place(_,1), place(_,2), place(_,3), place(_,4), place(_,5), place(_,6), place(_,7)]).
married(mrAstor, mrsAstor).
member(place(I, 0), Places),
married(mrBlake, mrsBlake).
member(place(J, 1), Places),
married(mrCrane, mrsCrane).
member(place(K, 2), Places),
married(mrDavis, mrsDavis).
member(place(L, 3), Places),
married(mrsAstor, mrAstor).
member(place(M, 4), Places),
married(mrsBlake, mrBlake).
member(place(N, 5), Places),
married(mrsCrane, mrCrane).
member(place(O, 6), Places),
married(mrsDavis, mrDavis).
member(place(P, 7), Places),
married(P,J),
dinner(Y) :- places(Places),
not(married(I, K)),
member(place(mrAstor, A), Places),
not(married(J, L)),
member(place(mrsAstor, MA), Places),
not(married(K, M)),
member(place(mrBlake, B), Places), B is ((MA + 1) mod 8),
not(married(L, N)),
member(place(mrsBlake, MB), Places),
not(married(M, O)),
member(place(mrCrane, C), Places),
not(married(N, P)),
member(place(mrsCrane, MC), Places), MC is ((B + 4) mod 8),
not(married(O, I)),
member(place(mrDavis, D), Places),
print_places(Places).
member(place(mrsDavis, MD), Places), MD is 0,
not(X) :- \+X.
print_places([]).
print_places([A | B]) :- write(A), nl, print_places(B).
Dr. Philip Cannata
4

ADVERTISEMENT

00 votes

Related Articles

Related forms

Related Categories

Parent category: Education
Go
Page of 5