Zagadka w prologu

0

Witam,
Mam takie zadanie do rozwiązania w Prologu:
Sześciu mężczyzn o różnych imionach (Andrzej, Dariusz, Mateusz, Michał, Tomasz, Wojciech)
jest żonatych z kobietami o różnych imionach (Agnieszka, Ewa, Róża, Ania, Alicja,
Ola)1 oraz posiada sześć różnych samochodów (BMW, Fiat, Ford, Mercedes, Opel, Renault)
w sześciu różnych kolorach (biały, czerwony, granat, zielony, żółty, szary). Każdy
pracuje w innym miejscu pracy (bank, hotel, politechnika, restauracja, sąd, szpital) i ma
inne hobby(czytanie, fotografia, majsterkowanie, pływanie, rowery, żeglarstwo).
Wiedząc, że
• Agnieszka i Andrzej są małżeństwem.
• Ola ma czerwony samochód.
• Fiat jest zielony.
• Właściciel Opla pracuje w restauracji.
• Pracownik politechniki lubi czytanie.
• Wojciech pływa w wolnych chwilach.
• Właściciel granatowego Forda lubi fotografować.
• Tomasz jest właścicielem BMW.
• Mąż Ewy lubi żeglarstwo.
• Dariusz ma biały samochód.
• Mąż Róży posiada Mercedesa.
• Właściciel szarego auta pracuje w sądzie.
• Po lewej stronie pracownika banku mieszka właściciel fiata, a po prawej pasjonat
kolarstwa.
• Po lewej stronie pracownika hotelu mieszka właściciel granatowego samochodu, a
z drugiej strony pracownik szpitala.
• Michał mieszka na prawo od Ani, a na lewo od niej mieszka Mateusz.
• Sąsiadem Alicji od lewej strony jest właściciel żółtego auta, a jego sąsiadem od
lewej strony jest znany majsterkowicz.
odpowiedz na pytania
• Kto pracuje w szpitalu?
• Jaki Kolor ma Renault?

Udało mi się napisać coś takiego:

% Sprawdzenie, czy element Lewo znajduje się na lewo od elementu Prawo w liście.
na_lewo(Lewy,Prawy,[Lewy,Prawy|_]).
na_lewo(Lewy,Prawy,[_|Ogon]) :- na_lewo(Lewy,Prawy,Ogon).

% Sprawdzenie, czy elementy X i Y znajdują się obok siebie w liście Domy.
obok(X,Y,Domy) :- na_lewo(X,Y,Domy).
obok(X,Y,Domy) :- na_lewo(Y,X,Domy).	

% Rozwiązanie zagadki.
rozwiazanie(Szukany) :-
	%Sześciu mężczyzn o różnych imionach (Andrzej, Dariusz, Mateusz, Michał, Tomasz, Wojciech)
	%jest żonatych z kobietami o różnych imionach (Agnieszka, Ewa, Róża, Ania, Alicja,
	%Ola) oraz posiada sześć różnych samochodów (BMW, Fiat, Ford, Mercedes, Opel, Renault)
	%w sześciu różnych kolorach (biały, czerwony, granat, zielony, żółty, szary). Każdy
	%pracuje w innym miejscu pracy (bank, hotel, politechnika, restauracja, sąd, szpital) i ma
	%inne hobby(czytanie, fotografia, majsterkowanie, pływanie, rowery, żeglarstwo).

	% [imiemezczyzny,imiekobiety,samochod,kolorsamochodu,praca,hobby].
	Domy = [[1,_,_,_,_,_,_],[2,_,_,_,_,_,_],[3,_,_,_,_,_,_],[4,_,_,_,_,_,_],[5,_,_,_,_,_,_],[6,_,_,_,_,_,_]].
	% Agnieszka i Andrzej są małżeństwem.
	member([_,andrzej,agnieszka,_,_,_,_],Domy).
	% Ola ma czerwony samochód.
	member([_,_,ola,_,czerwony,_,_],Domy).
	% Fiat jest zielony.
	member([_,_,_,fiat,zielony,_,_],Domy).
	% Właściciel Opla pracuje w restauracji.
	member([_,_,_,opel,_,restauracja,_],Domy).
	% Pracownik politechniki lubi czytanie.

	member([_,_,_,_,_,politechnika,czytanie],Domy).
	% Wojciech pływa w wolnych chwilach.
	member([_,wojciech,_,_,_,_,plywanie],Domy).
	% Właściciel granatowego Forda lubi fotografować
	member([_,_,_,ford,granatowy,_,fotografowanie],Domy).
	% Tomasz jest właścicielem BMW.
	member([_,tomasz,_,bmw,_,_,_],Domy).
	% Mąż Ewy lubi żeglarstwo
	member([_,_,ewa,_,_,_,zeglarstwo],Domy).
	% Dariusz ma biały samochód.

	member([_,dariusz,_,_,bialy,_,_],Domy).
	% Mąż Róży posiada Mercedesa
	member([_,_,roza,mercedes,_,_,_],Domy).
	% Właściciel szarego auta pracuje w sądzie.
	member([_,_,_,_,szary,sad,_],Domy).
	% Po lewej stronie pracownika banku mieszka właściciel fiata, 
	% a po prawej pasjonat kolarstwa.
	na_lewo([_,_,_,_,_,bank,_],[_,_,_,fiat,_,_,_],Domy).
	na_lewo([_,_,_,_,_,_,rowery],[_,_,_,_,_,bank,_],Domy).
	% Po lewej stronie pracownika hotelu mieszka właściciel granatowego samochodu, 
	% a z drugiej strony pracownik szpitala
	na_lewo([_,_,_,_,_,hotel,_],[_,_,_,_,granatowy,_,_],Domy).
	na_lewo([_,_,_,_,_,szpital,_],[_,_,_,_,_,hotel,_],Domy).
	% Michał mieszka na prawo od Ani, 
	% a na lewo od niej mieszka Mateusz
	na_lewo([_,michal,_,_,_,_,_],[_,_,ania,_,_,_,_],Domy).
	na_lewo([_,_,ania,_,_,_,_],[_,mateusz,_,_,_,_,_],Domy).
	% Sąsiadem Alicji od lewej strony jest właściciel żółtego auta, 
	% a jego sąsiadem od lewej strony jest znany majsterkowicz.

	obok([_,_,alicja,_,_,_,_],[_,_,_,_,zolty,_,_],Domy).
	obok([_,_,_,_,zolty,_,_],[_,_,_,_,_,_,majsterkowanie],Domy).
	% Szukamy kto pracuje w szpitalu.
	member([_,Szukany,_,_,_,szpital,_],Domy).

Jednak nie rozwiązują one zagadki. Widzi ktoś błąd? Z góry dziękuję za pomoc

0

nie wiem czy to jest błąd ale w Domy Brakuje nawiasu przed 1 i po 6.

0

:

nie wiem czy to jest błąd ale w Domy Brakuje nawiasu przed 1 i po 6.

% Po lewej stronie pracownika banku mieszka właściciel fiata,
% a po prawej pasjonat kolarstwa.

Czy to nie powinno być odwrotnie czyli banm pop rawej a fiat po lewej

1 użytkowników online, w tym zalogowanych: 0, gości: 1