Un robot si può muovere tra diversi posti e comprare oggetti. Per
comprare un oggetto deve essere in un posto in cui si vende tale
oggetto. Dopo aver comprato un oggetto, il robot lo possiede.
Descrivere tale dominio in Prolog, utilizzando i fluenti:
- has(X,S): il robot possiede l'oggetto X;
- atRobby(X,S): il robot si trova nel posto X.
e le azioni primitive:
- go(X,Y): il robot va da X a Y;
- buy(X): il robot compra l'oggetto X.
Si utilizzi un predicato statico sells(X,Y) per rappresentare il
fatto che nel posto X si vende l'oggetto Y.
Scrivere le procedure:
- go_and_buy(X) che conduca il robot ad andare in un posto in cui si
vende X e comprarlo.
- compratutti(L), dove L è una lista Prolog:
il robot compra tutti gli oggetti della
lista L (si ricordi che le azioni di test Golog possono essere
costituite dall'invocazione di un goal Prolog).
Soluzione proposta
marta
2012-04-17