Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 0.54 KB | None | 0 0
  1. clear(X, res(puton(_A,B),S)) :-
  2.     (clear(X,S), (X\==B)); X=table.
  3.    
  4. clear(Z, res(pickup(X,Y),S)) :-
  5.     block(Z),
  6.     block(X),
  7.     block(Z) \= block(X),
  8.     (Z = Y ; clear(Z,S)).
  9.  
  10. on(X,Y,res(puton(A,B),State)) :-
  11.     (X=A,Y=B);
  12.     on(X,Y,State).
  13.    
  14. on(X,Y,res(pickup(A,_B),State)) :-
  15.     on(X,Y,State), X\==A.
  16.  
  17. poss(pickup(X,Y),State) :-
  18.     clear(X,State), on(X,Y,State).
  19.  
  20. holding(X, res(pickup(X,Y),State)) :-
  21.     poss(pickup(X,Y),State).
  22.  
  23. poss(puton(X,Y), res(pickup(X,Z),State)) :-
  24.     holding(X,res(pickup(X,Z),State)),clear(Z,res(pickup(X,Z),State)).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement