-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathzebra-reverse.lru
41 lines (36 loc) · 1.49 KB
/
zebra-reverse.lru
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
exists(A, list(A, _, _, _, _)).
exists(A, list(_, A, _, _, _)).
exists(A, list(_, _, A, _, _)).
exists(A, list(_, _, _, A, _)).
exists(A, list(_, _, _, _, A)).
rightOf(R, L, list(L, R, _, _, _)).
rightOf(R, L, list(_, L, R, _, _)).
rightOf(R, L, list(_, _, L, R, _)).
rightOf(R, L, list(_, _, _, L, R)).
middle(A, list(_, _, A, _, _)).
first(A, list(A, _, _, _, _)).
nextTo(A, B, list(B, A, _, _, _)).
nextTo(A, B, list(_, B, A, _, _)).
nextTo(A, B, list(_, _, B, A, _)).
nextTo(A, B, list(_, _, _, B, A)).
nextTo(A, B, list(A, B, _, _, _)).
nextTo(A, B, list(_, A, B, _, _)).
nextTo(A, B, list(_, _, A, B, _)).
nextTo(A, B, list(_, _, _, A, B)).
puzzle(Houses) :-
exists(house(_, _, _, _, zebra), Houses),
exists(house(_, _, water, _, _), Houses),
nextTo(house(_, _, _, diplomat, _),house(_, _, _, _, horse), Houses),
nextTo(house(_, _, _, physician, _),house(_, _, _, _, fox), Houses),
exists(house(_, _, juice, violinist, _), Houses),
nextTo(house(_, norway, _, _, _),house(blue, _, _, _, _), Houses),
exists(house(green, _, coffee, _, _), Houses),
middle(house(_, _, milk, _, _), Houses),
exists(house(yellow, _, _, diplomat, _), Houses),
exists(house(_, _, _, photographer, snails), Houses),
rightOf(house(green, _, _, _, _), house(white, _, _, _, _), Houses),
first(house(_, norway, _, _, _), Houses),
exists(house(_, italy, tea, _, _), Houses),
exists(house(_, japan, _, painter, _), Houses),
exists(house(_, spain, _, _, dog), Houses),
exists(house(red, england, _, _, _), Houses).