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
|
% m(couleur, nationalite, animal, boisson, profession)
appartient_a(X,[X|_]).
appartient_a(X,[_|Ys]) :- appartient_a(X, Ys).
premiere(X, [X|_]).
est_a_droite_de(X,Y,[X,Y|_]).
est_a_droite_de(X,Y,[_|Zs]) :- est_a_droite_de(X, Y, Zs).
est_voisin_de(X,Y,Zs) :- est_a_droite_de(X, Y, Zs).
est_voisin_de(X,Y,Zs) :- est_a_droite_de(Y, X, Zs).
milieu(X,[_,_,X,_,_]).
resoudre(MAISONS) :- MAISONS = [_,_,_,_,_],
appartient_a(m(_, _, zebre, eau, _), MAISONS),
appartient_a(m(rouge, anglais, _, _, _), MAISONS),
appartient_a(m(_, espagnol, chien, _, _), MAISONS),
appartient_a(m(_, ukrainien, _, the, _), MAISONS),
appartient_a(m(verte, _, _, cafe, _), MAISONS),
appartient_a(m(_, _, escargot, _, sculpteur), MAISONS),
appartient_a(m(jaune, _, _, _, diplomate), MAISONS),
appartient_a(m(_, _, _, jusdorange, violoniste), MAISONS),
appartient_a(m(_, japonais, _, _, acrobate), MAISONS),
premiere(m(_, norvegien, _, _, _), MAISONS),
est_voisin_de(m(bleu, _, _, _, _), m(_, norvegien, _, _, _), MAISONS),
est_voisin_de(m(_, _, _, _, medecin), m(_, _, renard, _, _), MAISONS),
est_voisin_de(m(_, _, _, _, diplomate), m(_, _, cheval, _, _), MAISONS),
milieu(m(_, _, _, lait, _), MAISONS),
est_a_droite_de(m(verte, _, _, _, _), m(blanche, _, _, _, _), MAISONS). |
Partager