%move(Statel, Move, State2) - Move Statel % State2; : % State { MonkevHorizontal, MonkeyVertical, BoxPosition, KasBanana)
move! state) middle, onbox, middle, hasnot), %
grasp, %
state) middle, onbox, middle, has)). %
move (statel P, onfloor, P, H),
clinb, %
statel. P, onbox, P, H)).
move [ state (PI. onfloor, Pi, H},
push! Pi, P2), % 1 2
state[ 2, onfloor, P2, )).
movet state PI, onfloor, , Hi,
walk! PI, P2), % 1 2
state(P2, onfloor, , )).
% canget) State) - State
canget) state! _, _, _, has)). k canl -
canget) statel):- % 2 -
,
move(Statel, Move, State2), 4
cangetf Etate2). %
, . :?- canget(state) atdoor, onfloor, atwindow, hasnot))-
Prolog "yes". , Prolog , , Prolog, . . , . . . 2.12.
2. Prolog
5) |
£tato(a(doort onflow, otwindow, hasno
walk(nldoo[,P2J
(state! P2, onfloor, atwlndow, hasnot) I
posh{P2,P2'l P2 = atwindow |
climb/ |
3) Q |
$ |
sloto{ P2', onfloor, P2', hasnot) |
state{ atwindow, onbox, atwlndow, hasnot)
)
climb
t |
state! P2", onbox, P2', hasnot}
grasp
P2' = middle
J> |
statet middle, onbox, middle, has)
. 212 . , . .
Prolog . . , , move. ( ) . . , , , . , , .
|
|