% -----------------------------------------
% Exercice 1
% @author "Alexis Fouché" <contact@alexisfouche.net>
% -----------------------------------------

% == Question 1
% Autogenerated
homme(jon, grande, blonds, mur).
homme(tobias, moyenne, chatains, vieux).
homme(denis, moyenne, blonds, vieux).
homme(josiah, petite, chatains, mur).
homme(francesco, grande, bruns, jeune).
homme(jonathan, moyenne, bruns, jeune).
homme(rob, moyenne, bruns, mur).
homme(geoffrey, grande, roux, mur).
homme(ken, petite, chatains, jeune).
homme(jewel, petite, blonds, jeune).

femme(ardell, grande, blonds, mur).
femme(lavera, moyenne, bruns, mur).
femme(marcelle, petite, chatains, mur).
femme(trudie, moyenne, chatains, vieux).
femme(alishia, moyenne, blonds, vieux).
femme(casimira, grande, bruns, jeune).
femme(jeffry, grande, roux, mur).
femme(dwana, petite, chatains, jeune).
femme(cornelia, moyenne, bruns, jeune).
femme(delilah, petite, chatains, jeune).

gout(jon, classique, aventure, natation).
gout(jonathan, classique, science-fiction, natation).
gout(geoffrey, classique, policier, tennis).
gout(tobias, pop, aventure, jogging).
gout(josiah, pop, aventure, tennis).
gout(denis, pop, policier, tennis).
gout(rob, jazz, science-fiction, tennis).
gout(ardell, jazz, policier, jogging).
gout(francesco, jazz, science-fiction, jogging).
gout(ken, pop, policier, natation).
gout(lavera, classique, aventure, natation).
gout(alishia, pop, policier, tennis).
gout(jewel, jazz, aventure, jogging).
gout(jeffry, jazz, aventure, natation).
gout(dwana, classique, science-fiction, jogging).
gout(delilah, classique, science-fiction, jogging).
gout(trudie, pop, aventure, natation).
gout(marcelle, pop, aventure, tennis).
gout(casimira, jazz, aventure, tennis).
gout(cornelia, classique, science-fiction, natation).

recherche(lavera, grande, blonds, mur).
recherche(dwana, moyenne, chatains, vieux).
recherche(cornelia, petite, chatains, mur).
recherche(geoffrey, grande, bruns, jeune).
recherche(jonathan, moyenne, bruns, jeune).
recherche(rob, moyenne, bruns, mur).
recherche(francesco, grande, roux, mur).
recherche(ken, petite, chatains, jeune).
recherche(denis, moyenne, blonds, vieux).
recherche(jewel, petite, blonds, jeune).
recherche(ardell, grande, blonds, mur).
recherche(jon, moyenne, bruns, mur).
recherche(alishia, moyenne, blonds, vieux).
recherche(jeffry, grande, roux, mur).
recherche(tobias, petite, chatains, jeune).
recherche(delilah, petite, chatains,jeune).
recherche(trudie, moyenne, chatains, vieux).
recherche(marcelle, petite, chatains, mur).
recherche(casimira, grande, bruns, jeune).
recherche(josiah, moyenne, bruns, jeune).

% == Question 2
% Prédicat : convient-physiquement/2
% Usage : convient-physiquement(?homme, ?femme) est satisfait si ?femme convient physiquement à ?homme
convient-physiquement(X, Y) :- homme(X, T, C, A),
					     femme(Y, T2, C2, A2),
					     recherche(X, T2, C2, A2),
					     recherche(Y, T, C, A).

convient-physiquement(X, Y) :- femme(X, T, C, A),
					     homme(Y, T2, C2, A2),
					     recherche(X, T2, C2, A2),
					     recherche(Y, T, C, A).

% == Question 3
% Prédicat : meme-gout/2
% Usage : meme-gout(?gout, ?gout) est satisfait si les gouts des 2 personnes sont identiques
% NB : Retourne true pour X = Y, ce qui est normal.
meme-gout(X, Y) :- gout(X, M, L, S), gout(Y, M, L, S).

% == Question 4
% Prédicat : assortis/2
% Usage : assortis(?X, ?X) est satisfait si Y convient à X et s'ils ont les mêmes gouts.
assortis(X, Y) :- convient-physiquement(X, Y), meme-gout(X, Y).