|
digit(0). |
|
digit(1). |
|
digit(2). |
|
digit(3). |
|
digit(4). |
|
digit(5). |
|
digit(6). |
|
digit(7). |
|
digit(8). |
|
digit(9). |
|
|
|
clue0(A, B, C) :- |
|
digit(A), digit(B), digit(C). |
|
|
|
clue1(A, B, C) :- |
|
A = 6, B \= 8, C \= 2; |
|
A \= 6, B = 8, C \= 2; |
|
A \= 6, B \= 8, C = 2. |
|
|
|
clue2(A, B, C) :- |
|
A = 1, \+ member(B, [6, 4]), \+ member(C, [6, 4]); |
|
A = 4, \+ member(B, [6, 1]), \+ member(C, [6, 1]); |
|
B = 4, \+ member(A, [6, 1]), \+ member(C, [6, 1]); |
|
B = 6, \+ member(A, [1, 4]), \+ member(C, [1, 4]); |
|
C = 1, \+ member(A, [6, 4]), \+ member(B, [6, 4]); |
|
C = 6, \+ member(A, [1, 4]), \+ member(B, [1, 4]). |
|
|
|
clue3(A, B, C) :- |
|
A \= 6, B = 2, C = 0; |
|
A = 0, B \= 6, C = 2; |
|
A = 0, B = 2, C \= 6; |
|
A \= 0, B = 6, C = 2; |
|
A = 6, B \= 0, C = 2; |
|
A = 6, B = 2, C \= 0; |
|
A \= 2, B = 6, C = 0; |
|
A = 6, B \= 2, C = 0; |
|
A = 0, B = 6, C \= 2. |
|
|
|
clue4(A, B, C) :- |
|
\+ member(A, [3, 7, 8]), |
|
\+ member(B, [3, 7, 8]), |
|
\+ member(C, [3, 7, 8]). |
|
|
|
clue5(A, B, C) :- |
|
A = 0, \+ member(B, [7, 8]), \+ member(C, [7, 8]); |
|
A = 7, \+ member(B, [0, 8]), \+ member(C, [0, 8]); |
|
B = 0, \+ member(A, [7, 8]), \+ member(C, [7, 8]); |
|
B = 8, \+ member(A, [0, 7]), \+ member(C, [0, 7]); |
|
C = 7, \+ member(A, [0, 8]), \+ member(B, [0, 8]); |
|
C = 8, \+ member(A, [0, 7]), \+ member(B, [0, 7]). |
|
|
|
pass(A, B, C) :- |
|
clue0(A, B, C), |
|
clue1(A, B, C), |
|
clue2(A, B, C), |
|
clue3(A, B, C), |
|
clue4(A, B, C), |
|
clue5(A, B, C). |