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:
|
% Schiffe sind Listen von der Form [Zielort, Fahne, Fracht, Farbe, Abfahrt]
% Hilfsprädikate
mittleres(M,[_,_,M,_,_]).
links(A,B,[A|[B|_]]).
links(A,B,[_|R]):-links(A,B,R).
neben(A,B,L):-links(A,B,L);links(B,A,L).
erstes(E,[E|_]).
letztes(L,[_|L]).
rand(R,L) :- erstes(R,L);letztes(R,L).
% Informationen verarbeiten
loese :-
X = [_,_,_,_,_],
member([_,Griechenland,_,_,6],X),
member([_,Griechenland,Kaffee,_,_],X),
mittleres([_,_,_,Schwarz,_],X),
member([_,England,_,_,9],X),
member([_,Frankreich,_,Blau,_],X),
links([_,Frankreich,_,_,_],[_,_,Kaffee,_,_],X),
links([_,_,Kakao,_,_],[Marsaille,_,_,_,_],X),
member([Manila,Brasilien,_,_,_],X),
neben([_,_,_,Gruen,_],[_,_,Reis,_,_],X),
member([Genua,_,_,_,5],X),
member([_,Spanien,_,_,7],X),
links([Marsaille,_,_,_,_],[_,_,Spanien,_,_],X),
member([Hamburg,_,_,Rot,_],X),
neben([_,_,_,Weiss,7],[_,_,_,_,_],X),
rand([_,_,Korn,_,_],X),
member([_,_,_,Schwarz,8],X),
neben([_,_,Korn,_,_],[_,_,Reis,_,_],X),
member([Hamburg,_,_,_,6],X).
|