1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
/* si le singe la caisse et les bananes sont dans la même pièce, on a réussi */
est_en(X,X,X).
/* si le singe est en X, la caisse en Y et les bananes en Z
alors soit on va en A (s'il y a une porte entre X et A)
et on voit ce qui se passe,
soit on met la caisse en B (s'il y a une porte entre X et B)
et on voit ce qui se passe */
est_en(X,Y,Z):- ( porte(X,A), est_en(A,Y,Z) );
( porte(Y,B), est_en(X,B,Z) ).
/* définition des portes et des pièces */
porte(piece_1, piece_2).
porte(piece_2, piece_4).
porte(piece_3, piece_4).
porte(X,Y):- porte(Y,X). |
Partager