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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| code:
:-use_module(library(pce)).
p(A):-assert(pan(A)),write('la panne est :'),nl,
panne(P),
write(P).
panne('panne1'):-pan(1).
panne('panne2'):-pan(2).
cose(C):-cause_solution(C,_).
solve(S):-cause_solution(_,S).
cause_solution(cause11,solution11):-panne('panne1').
cause_solution(cause12,solution12):-panne('panne1').
cause_solution(cause13,solution13):-panne('panne1').
cause_solution(cause14,solution14):-panne('panne1').
cause_solution(cause21,solution21):-panne('panne2').
cause_solution(cause22,solution22):-panne('panne2').
cause_solution(cause23,solution23):-panne('panne2').
cause_solution(cause24,solution24):-panne('panne2').
%----------------------
causes:-write('les causes sont:'),nl,
cause.
solutions:-write('les solutions sont:'),nl,
solution.
cause :-
% on crée la fenêtre
new(D, window('fenetre de causes')),
% on lui donne la bonne taille
send(D, size, size(450, 300)),
% on crée un composant texte
%ici j'ai essayé d'introduire le prédicat à tenir en compte
[
p(X):-assert(pan(X)),
pan(1),
pan(2),
cose(cause11):-pan(1),
cose(cause12):-pan(1),
cose(cause13):-pan(1),
cose(cause14):-pan(1),
cose(cause21):-pan(2),
cose(cause22):-pan(2),
cose(cause23):-pan(2),
cose(cause24):-pan(2),
cose(C) ],
new(Txt, text(C)),
% on demande à la fenêtre de l'afficher à peu près au milieu
send(D, display, Txt, point(80, 40)),
% on envoie à la fenêtre le message d'affichage.
send(D, open).
solution :-
% on crée la fenêtre
new(D, window('fenetre de solutions')),
% on lui donne la bonne taille
send(D, size, size(450, 300)),
% on crée un composant texte
new(A, text('les solutions sont:')),
% on demande à la fenêtre de l'afficher à peu près au milieu
send(D, display,A, point(80, 20)),
% on envoie à la fenêtre le message d'affichage.
send(D, open). |
Partager