not(crate(_, CrateTarget, Direction)).
% --- Successor state axioms ------------------------------------------
-agent(AgentPlek, do(A, S)) :-
+agent(AgentPlek, result(A, S)) :-
A = move(_, AgentPlek);
A = push(OudeAgentPlek1, Richting),
- connected(OudeAgentPlek1, AgentPlek, Richting);
+ connected(OudeAgentPlek1, AgentPlek, Richting);
not(A = move(AgentPlek, _)), not(A = push(AgentPlek, _)),
- agent(AgentPlek, S).
+ agent(AgentPlek, S).
-crate(Krat, Kratplek, do(A, S)) :-
+crate(Krat, Kratplek, result(A, S)) :-
A = push(AgentPlek, Richting),
connected(AgentPlek, OudeKratPlek, Richting),
connected(OudeKratPlek, Kratplek, Richting),
crate(Krat, OudeKratPlek, S);
- not(A = push(AgentPlek2, Richting)),
- connected(AgentPlek2, Kratplek, Richting),
- crate(Krat, Kratplek, S).
+ not(A = push(AgentPlek2, Richting2)),
+ connected(AgentPlek2, Kratplek, Richting2),
+ crate(Krat, Kratplek, S).