Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Inform - oggetto come composizione di oggetti

Parto con un esempio in modo da essere + chiaro:
ho la classe Ruota, 4 oggetti di tale classe,
poi ho l'oggetto motore e l'oggetto carrozzeria
Ho delle regole che mi consentono di costruire un oggetto come composizione
di altri, cioè dopo alcune azioni ho la macchina.
Come faccio ad assegnare property ad un oggetto che è composto
da altri oggetti e ad agire su di esso come un normale oggetto??
spero di essere stato chiaro..
ciau ciau
--
Tommaso Caldarola
-----------------------------------------------------------------------
Personal Web Site:    
http://www.angelfire.com/sk/tommaso
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Legge di Thomas sulla felicità matrimoniale:
La durata di un matrimonio è
inversamente proporzionale ai
soldi spesi per le nozze.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 spero di essere stato chiaro..
<WARNING: TECH-TALK AHEAD>
secondo me la cosa migliore è definire la macchina come contenitore (al limite invisibile... in questo caso
corrisponderebbe all' "idea" della macchina (ndPlatone) - altrimenti basta partire da "telaio" e cambiare via via nome e
descrizione) e intercettare le mosse che la costruiscono generando in modo trasparente dei "move <componente generico>
to macchina". Ovviamente devi filtrare tutti i Receive del contenitore in modo che non possa contenere altre cose,
almeno finché non è costruita del tutto (a quel punto presumibilmente diventa un veicolo standard con le sue
caratteristiche). 
All'uopo definirei un attributo "car_component" da dare a tutti i pezzi e impedire l'uso (inserimento) di tutti gli
oggetti che non hanno car_component. Le priorità nella costruzione le fai con degli if nei before. bella questa frase.
ummmm io l'ho detto, a qs. punto se vuoi che ci lavoriamo, posta pure il codice...
ciao!
S

Ti ringrazio....... se mi trovo in difficoltà
non farò altro che postare, o al massimo in privato allo scopo
di non rendere già la soluzione!!!
Purtroppo scrivo codice durante la pausa pranzo o la notte, quindi
attendi notizie!!!
ciauuu
tommi


 caratteristiche). 
Nel designer manual e' descritto bene un esempio del genere: una televisione
con quattro pulsanti (sezione 11, pp.104-105). Il problema si gestisce con un
contenitore e le estensioni di scope. La cosa e' divertente quando oltre a 
essere scomposta in piu' oggetti e' ANCHE un vero e proprio contenitore :)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.0 (GNU/Linux)
Comment: For info see 
http://www.gnupg.org
iD8DBQE5EF/wAnHoI6r8H7gRAu9VAJ0WnlC7/x+Dw1W/9YrLXrVhcLOLgACfba/F
4EYmYAuM6eIeRk2eJNpQtWs=
=v+X9
-----END PGP SIGNATURE-----

 essere scomposta in piu' oggetti e' ANCHE un vero e proprio contenitore :)
si, ma il problema è che la macchina qui non si deve solo definire ma, se ho capito bene, costruire -- questo rende il
problema molto più complesso dell'esempio sul DM. Come minimo bisogna intercettare tutti i verbi (tra cui alcuni
sicuramente nuovi) e le conseguenti azioni di "costruzione". Poi in pratica si possono semplicemente spostare nel
contenitore: per capire lo stato del "semilavorato" si può di volta in volta fare una query sui children dell'oggetto
contenitore (telaio o invisibile, come ho detto) oppure creare esplicitamente una variabile tipo STATO su un dominio
enumerativo (o cardinal, definendo apposite costanti).
una cosa tipo (copio dal mio codice in-progress senza rivelare troppo:)
----------------------------------
! For the machine...
Constant OFF = 1;     
Constant IDLE = 2;    
Constant RUNNING = 3;
eccetera...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! HERE BEGIN THE OBJECT DESCRIPTIONS  !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Object machine "strange-looking machine" Lab
	    with name "machine" "strange" "weird",
	         status OFF,  ! 1==off; 2==idle; 3==running...
	         description  "this is a truly weird piece of machinery...",
---------------------------------
eccetera. 
ciao!
S