Skip to content

Instantly share code, notes, and snippets.

@beerose
Created June 10, 2019 22:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save beerose/9b70b95a4c58b9f98c6a865ad06dd5e4 to your computer and use it in GitHub Desktop.
Save beerose/9b70b95a4c58b9f98c6a865ad06dd5e4 to your computer and use it in GitHub Desktop.
% house(Nationality, Color, Pet, Cigarette, Drink)
solve(Houses) :-
length(Houses, 5),
% Anglik ma czerwony dom
member(house(english,red,_,_,_), Houses),
% Hiszpan ma psa
member(house(spanish,_,dog,_,_), Houses),
% W zielonym domu pije się kawę
member(house(_,green,_,_,coffee), Houses),
% Ukrainiec pija herbatę
member(house(ukrainian,_,_,_,tea), Houses),
% Zielony dom sąsiaduje z białym
adjacent(house(_,green,_,_,_), house(_,white,_,_,_), Houses),
% Właściciel węża pali winstony
member(house(_,_,_,winston,_), Houses),
% W żółtym domu palą Koole
member(house(_,yellow,_,kool,_), Houses),
% W domu pośrodku piją mleko
Houses = [_,_,house(_,_,_,_,milk),_,_],
% Dom Norwega to pierszy z lewej
Houses = [house(norwegian,_,_,_,_)|_],
% Palacz Chesterfiledów jest sąsiadem własciciela lisa
adjacent(house(_,_,fox,_,_), house(_,_,_,chesterfield,_), Houses),
% W domu sąsiadującym z właścicielem konia palą Koole
adjacent(house(_,_,_,kool,_), house(_,_,horse,_,_), Houses),
% Palacz Lucky Strike pija sok
member(house(_,_,_,luckystrike,juice), Houses),
% Japończyk pali Kenty
member(house(japanese,_,_,kent,_), Houses),
% Norweg sąsiaduje z niebieskim domem
adjacent(house(norwegian,_,_,_,_), house(_,blue,_,_,_), Houses),
% #1 zagadka -- Kto jest właścicielem słonia
member(house(_,_,elephant,_,_), Houses),
% #2 zagadka -- Kto pije wódkę
member(house(_,_,_,_,vodka), Houses).
adjacent(A, B, Ls) :- append(_, [A,B|_], Ls).
adjacent(A, B, Ls) :- append(_, [B,A|_], Ls).
drinks_vodka(X) :-
solve(Houses),
member(house(X,_,_,_,vodka), Houses).
has_elephant(X) :-
solve(Houses),
member(house(X,_,elephant,_,_), Houses).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment