leftof(A, B, [A, B | _]). leftof(A, B, [_ | R]) :- leftof(A, B, R). % Implementierung autos :- % Beachte - nur ueber den Donnerstag gibt es keine Informationen, deswegen _ Wochentag = [Mo, Di, Mi, _, Fr], permutation( Wochentag, [ [_, _, blaumetallic, _], [_, _, silber, _], [_, _, grau, _], [_, _, feuerwehrrot, _], [_, _, schwarz, _] ] ), permutation( Wochentag, [ [_, _, _, 12000], [_, _, _, 20000], [_, _, _, 28000], [_, _, _, 32000], [_, _, _, 40000] ] ), % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Regeln aus dem Raetsel % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Das graue Auto ist am teuersten. member([_, _, grau, 40000], Wochentag), % Das schwarze Auto stand am Mittwoch am Institut. Mi = [_, _, schwarz, _], % Michael kam nicht am Donnerstag mit dem feuerwehrroten Auto zur Arbeit. member([michael, _, feuerwehrrot, _], [Mo, Di, Mi, Fr]), % Der Kombi ist blau-metallic. member([_, kombi, blaumetallic, _], Wochentag), % Am Freitag stand ein Auto am Institut, das teuere ist als Julians Kleinwagen. Fr = [_, _, _, G1], member([julian, kleinwagen, _, G2], Wochentag), G1 > G2, % Am Dienstag stand ein SUV mit einer Kaufpreis von 20.000 EUR vor dem Institut. Di = [_, suv, _, 20000], % Alexanders Auto war nicht teurer wie die Limousine und es ist nicht schwarz. member([alexander, _, F3, G3], Wochentag), member([_, limousine, _, G4], Wochentag), G3 < G4, member(F3, [blaumetallic, silber, grau, feuerwehrrot]), % Max kam am Montag mit seinem Auto zur Arbeit und es ist nicht silber. Mo = [max, _, _, F5], F5 \= silber, % Marks Motorrad hat eine Höchstgeschwindigkeit von 180 km/h. leftof([_, cabrio, _, _], [tim, _, _, 28000], Wochentag), % Loesung ausgeben write(Wochentag), write('\n'), fail.