Salut,
J'ai un problème en prolog et je voulais solliciter votre aide.
C'est au niveau du prédicat concour.
%Permet de vérifier, si l'élément appartient à la liste.
appart(X,[X|_]).
appart(X,[_|L]):-appart(X,L).
%Détermine le premier élément de la liste.
first(X,[X|_]).
%Permet de déterminer l'ordre dans le classement.
did_better(X,Y,[X|Q]):- appart(Y,Q).
did_better(X,Y,[_|Q]):- did_better(X,Y,Q).
%Tableau des cas possibles.
tableau([friend(N1,C1,S1),friend(N2,C2,S2),friend(N3,C3,S3)]):-
appart(N1,[michael,simon,richard]),
appart(N2,[michael,simon,richard]),
appart(N3,[michael,simon,richard]),
N1 \== N2, N1 \== N3, N2 \== N3,
appart(C1,[australien,israelien,americain]),
appart(C2,[australien,israelien,americain]),
appart(C3,[australien,israelien,americain]),
C1 \== C2, C1 \== C3, C2 \== C3,
appart(S1,[basket,criket,tennis]),
appart(S2,[basket,criket,tennis]),
appart(S3,[basket,criket,tennis]),
S1 \== S2, S1 \== S3, S2 \== S3.
%Pour déduire les résultats finals.
concour(Tableau):-
tableau(Tableau),
appart(friend(michael,C1,basket),Tableau),
did_better(friend(michael,C1,basket),friend(N3,C3,americain),Tableau),
appart(friend(simon,israelien,S2),Tableau),
did_better(friend(simon,israelien,S2),friend(N3,C3,tennis),Tableau),
first(friend(N2,C2,cricket),Tableau),
N2 \== null, C2 \== null.
Afficher la suite