Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
% https://jacobwalte.rs/posts/dishonored-2-prolog.html exists(A, list(A, _, _, _, _)). exists(A, list(_, A, _, _, _)). exists(A, list(_, _, A, _, _)). exists(A, list(_, _, _, A, _)). exists(A, list(_, _, _, _, A)). leftOf(L, R, list(L, R, _, _, _)). leftOf(L, R, list(_, L, R, _, _)). leftOf(L, R, list(_, _, L, R, _)). leftOf(L, R, list(_, _, _, L, R)). first(A, list(A, _, _, _, _)). second(A, list(_, A, _, _, _)). middle(A, list(_, _, A, _, _)). nextTo(A, B, Xs) :- leftOf(A, B, Xs). nextTo(A, B, Xs) :- leftOf(B, A, Xs). puzzle(Diners) :- % Name, Colour, Drink, Town, Heirloom exists(diner(winslow, _, _, _, _), Diners), exists(diner(marcolla, _, _, _, _), Diners), exists(diner(contee, _, _, _, _), Diners), exists(diner(natsiou, _, _, _, _), Diners), exists(diner(finch, _, _, _, _), Diners), exists(diner(winslow, blue, _, _, _), Diners), first(diner(natsiou, _, _, _, _), Diners), second(diner(_, purple, _, _, _), Diners), leftOf(diner(_, red, _, _, _), diner(_, green, _, _, _), Diners), exists(diner(_, red, whiskey, _, _), Diners), exists(diner(_, white, _, karnaca, _), Diners), nextTo(diner(_, _, _, _, snuffTin), diner(_, _, _, karnaca, _), Diners), exists(diner(finch, _, _, _, ring), Diners), exists(diner(_, _, _, baleton, warMedal), Diners), exists(diner(_, _, _, _, birdPendant), Diners), nextTo(diner(_, _, _, fraeport, _), diner(_, _, wine, _, _), Diners), exists(diner(marcolla, _, rum, _, _), Diners), exists(diner(_, _, beer, dunwall, _), Diners), not(middle(diner(_, _, _, dunwall, _), Diners)), middle(diner(_, _, absinthe, _, _), Diners), exists(diner(contee, _, _, dabovka, _), Diners), exists(diner(_, _, _, _, snuffTin), Diners), exists(diner(_, _, _, _, diamond), Diners), exists(diner(_, _, _, _, warMedal), Diners), exists(diner(_, _, _, _, birdPendant), Diners).