Tavoli e oggetti colorati

Il dominio è costituito da alcuni tavoli, un insieme di oggetti e un unico robot. Gli oggetti sono collocati sui tavoli e il robot può spostare gli oggetti da un tavolo a un altro. Gli oggetti hanno diversi colori, che non si possono modificare.

Rappresentare il dominio utilizzando l'unico fluente on(X,T,S) (l'oggetto X si trova sul tavolo T nella situazione S) e l'unica azione move(X,From,To) (il robot sposta l'oggetto X dal tavolo From al tavolo To. Rappresentare i colori degli oggetti mediante il predicato statico colore(X,C) (il colore di X è C).

Rappresentare una situazione iniziale qualsiasi con almeno 3 tavoli e diversi oggetti, di almeno 3 colori diversi, e scrivere le seguenti procedure:

  1. sposta(X,T), che sposta l'oggetto X sul tavolo T. La procedura fallisce se X sta già sul tavolo T.

  2. spostatutti(C,T), che sposta sul tavolo T tutti gli oggetti del colore C.

  3. toglitutti(C,T) che toglie dal tavolo T tutti gli oggetti di colore diverso da C.

Per ciascuna delle procedure spostatutti(C,T) e toglitutti(C,T), scriverne due versioni: una che utilizzi il costrutto while e l'altra senza l'uso di while.

 
Soluzione proposta

marta
2012-04-17