``Monkey & Banana''

Acciones (movs.):

Descricción: edo(PosHorizMono, PosVertMono, PosCaja, TienePlátano).

Representar cambios de estado con 3 argumentos:

           mov(estado1, accion, estado2).

tomar platano:

mov(edo(centro,sobre_caja,centro,no),toma,

edo(centro,sobre_caja,centro,si)).

subir:

mov(edo(X, piso, X, Y), sube, edo(X, sobre_caja, X, Y)).

empuja:

mov(edo(X, piso, X, Y), empuja(X,Z), edo(Z, piso, Z, Y)).

camina:

mov(edo(X, piso, Y, Z), camina(X,W), edo(W, piso, Y, Z)).

Para ver si puede comer: (hacer trace de: ?- come(edo(puerta,piso,ventana,no)).

come(edo(_,_,_,si)).
come(Edo1) :-
   mov(Edo1, Acc, Edo2),
   come(Edo2).

El orden de los movimientos, implica una preferencia de acciones. Cambiando el orden podriamos inclusive nunca llegar a la solución (e.g., si ponemos el último movimiento al principio, se la pasaría caminando!).



emorales 2012-05-03