Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [INFORM] complesso problema oggetti

prendi oggetto [ora siamo nelle locazioni dove non si puo' prenderlo]
non puoi prendere l' oggetto.
..... e qui casca l' asino (cioe' io): come implementare un oggetto presente 
in molte locazioni ma prendibile solo in alcune ?
Non riesco a spiegarmi bene poiche' non ho dormito per risolvere il punto, 
comunque spero sia chiaro.
Potete essermi d' aiuto ?
Ringrazio anticipatamente,
Piergiorgio

 non puo'?
Intercetta l'azione take nel before dell'oggetto dove inserirai un test per
verificare qual č la locazione corrente:
before
[; Take: if (location==loc1 or loc2 or ....) "Non lo puoi prendere";
         else "Preso";
         rtrue;
.....
]
HAPPY INFORMING
Giovanni

          rtrue;
Non mi torna... La before non dovrebbe ritornare false per permettere il 
normale svolgimento dell'azione?
bye
-- 
Paolo Lucchesi
email: 
pluc...@tin.it
homepage: 
http://www.paololucchesi.it
"Non viviamo in un mondo perfetto (per fortuna)"

 bye
Sì infatti il codice corretto è
before [;
        Take:
                if ( location has QuiSiPuo )
                        rfalse;
                else
                        "non puoi farlo qui";
];
Location has quisipuò è il modo più facile. Gli attributi servono a questo!
JC1

 normale svolgimento dell'azione?
Si', credo anch'io. Dovrebbe essere _else rfalse;_ (se l'oggetto e'
prendibile). Cmq mi sembra che la routine funzioni. Chissa' che oggetto e'
che non puo' essere preso o puo' essere preso ma non trasportato ^__^
Ciao,
Marco

Zerouno wrote:

No, non funzionerebbe. La routine direbbe "Preso", ma l'oggetto non verrebbe 
mosso nel player...
JC1

 Si', credo anch'io. Dovrebbe essere _else rfalse;_ 
in effetti il blocco else è del tutto superfluo, basta mettere if (locazioni 
proibite) print_ret "...";

 ha scritto nel messaggio
news:3E0466AB...@gaburri.net...
Zerouno wrote:



Hai ragione, e' stato il primo ELSE a trarmi in inganno. Il bello di Inform
credo sia anche questo, il poter uscire abbastanza velocemente da una serie
di condizioni.
Happy Informing,
Marco

Salve,
Prima di tutto ringrazio Giovanni e giancarlo per i loro suggerimenti e 
tutti gli altri per la loro discussione teorica.
Il punto e', che non so se i sistemi proposti siano applicabili a quanto ho 
in mente (adesso che sono + lucido poso spiegarmi meglio):
Ho creato due classi di room, una normale ed una delle aree proibite 
(chiamate rispettivamente room e partyroom). Ora, non volendo certo 
sprecare risorse, creo l' object torcia nelle locazioni (due, per ora, di 
cui una non ancora implementata) in cui e' possibile prenderle, mentre 
nelle altre locazioni dovranno essere presenti, diciamo, come scenery.
Quello che ho in mente, e' insomma, di avere un messaggio che nelle 
locazioni ove e presente l' oggetto ma "sconveniente" (hint, hint!! ;) ) 
prenderlo stampa un messaggio apposito e basta.
Ho provato a mettere un before a Take nella class partyroom con risultati 
disastrosi, ma sarebbe quello che serve.
L' alternativa sarebbe quella di implementare l' oggetto nelle aree 
partyroom con un meccanismo simile a quello dell' esempio di procione del 
DM4 ma temo ci sarebbe un conflitto nel vocabolario con lo stesso nome 
riferente a 2 oggetti diversi.
Ba' se non sono stato chiaro, piu' in la metto il frammento di codice 
(despoilerato) di quello che ho fatto.
Saluti, e grazie in anticipo.
Piergiorgio (che ormai e' una creatura della notte...)
 

Non ti esprimere in termini di "cose che il programma fa". Esprimiti in 
termini di "mondo reale". Ci sarà più facile fornirti poi una corretta 
modellizzazione; così dobbiamo inferire il mondo reale a cui tu stavi 
pensando a partire dal tuo modello, e poi dirti cosa c'è che non va. E non 
postare nemmeno il codice: sarebbe lo stesso.
Dicci solo la trama dell tua avventura, cosa succede e perché.
JC1

 Dicci solo la trama dell tua avventura, cosa succede e perché.
La tua impstazione "filosofica" dell' approccio alla stesura di un' IF (che 
effettivamente, E' un mondo virtuale) e' giusta.
Per quanto riguarda la trama ed il resto, se sei davvero interessato 
(spoiler!) mandami in mail il tuo indirizzo (il mio nel from: non e' 
despammato: gli spam in realtà mi fanno ridere, e difatti mi diverto e non 
mi arrabbio quando spammano nel NG) e ti esporro' la trama dell' IF che ho 
in mente.
Io lavoro con il sistema dell' "albero e foglia" cioe' parto da un idea 
generale, che poi espando piano piano: una locazione qui, un oggetto là, 
mano a mano che mi vengono le idee e le cose piano piano compongono il 
quadro armonicamente. E' simile al bottom-up nella programmazione, ma molto 
più articolato.
Se non mi sbaglio, è lo stesso modo con cui Tolkien ha creato la Terra di 
Mezzo.....
ASpetto quindi una tua mail.
Saluti,
Piergiorgio.
P.s. Se qualcun' altro volesse sapere i dettagli non ha che chiederlo in 
mail (pero' pensateci bene, che e' spoileroso !)

 > normale svolgimento dell'azione?
naturlamente, deve ritornare false. Scusate l'imprecisione ma andavo di
fretta (avevo un treno dopo un'ora...)
Giovanni

 (chiamate rispettivamente room e partyroom). 
e non puoi fare semplicemente il test nel before dell'oggetto, sull'azione take, 
per vedere se la locaz. corrente appartiene all'una o all'altra classe?
...
if (location ofclass partyroom) "ma cosa vuoi prendere, coglionazzo?";
...
o qualcosa più o meno equivalente :)
ciao
S

 o qualcosa più o meno equivalente :)
Provero' ma dubito porti a qualcosa (l' oggetto e' presente solo nelle 
locazioni dove si puo' prendere, non nelle locazioni partyroom dove e' 
presente solo a livello di citazione nella descrizione della locazione.)
Saluti,
Piergiorgio.

 presente solo a livello di citazione nella descrizione della locazione.)
Metti l'oggetto in *tutte* le locazioni e con before controlla Examine,
Take, Touch ecc. Se posti il codice (o me lo invii) gli do un'occhiata
volentieri.
f.

 presente solo a livello di citazione nella descrizione della locazione.)
e tu aggiungilo anche in quelle...  :)

 e tu aggiungilo anche in quelle...  :)
Il fatto e' che peferisco risparmiare il più possibile le risorse limitate 
(oggetti) all' inizio della stesura in modo da non compromettere l' 
espansione della trama in quanto io lavoro partendo dalla foglia per 
rappresentare l' albero e poi il mondo, come insegnava Tolkien.... 
In termini informatici e' un approccio bottom-up se non sbaglio.
Saluti,
Piergiorgio.

 (oggetti) all' inizio della stesura
D'accordo, ma visto che si parla di decine di torce piu' una sola torcia
prendibile, *due* oggetti - Tolkien o non Tolkien - mi sembrano il minimo
interplanetario (vedi l'esempio che t'ho inviato).
f.

 (oggetti) 
ma col formato .z5 (per tacer di glulx) prima di arrivare al limite degli 
oggetti devi scrivere cose abnormi!
e comunque non capisco, aggiungere che un oggetto è found_in (10 locazioni) mica 
lo decuplica... è sempre uno, no?
ciao
S

 locazioni) mica lo decuplica... è sempre uno, no?
C'e' anche lo .z8 se e' per questo.
Comunque, e' una forma mentis acquisita programmando macchine ad 8-bit (VIC, 
C=64, ZX spectrum) e quindi ho acquisito la mentalità di risparmiare 
risorse il più possibile (e adesso ho una bestia con 256 MB di ram e 
continuo a scrivere programmi sforzandomi di risparmiare memoria....)
Penso che se lavorassi nel campo informatico sarei un' ottimo sviluppatore 
per PDA ed embedded ;)
Saluti,
Piergiorgio.

 prendibile, due oggetti
Forse gli oggetti legati alle torce saranno tre.
Difatti medito di fare una seconda locazione ove prendere una torcia ;)
Saluti,
Piergiorgio.

 per PDA ed embedded ;)
embedded, forse ancora, ma i palmari ormai girano tutti con WinCE e dubito 
fortemente che si risparmi il bit... l'ultimo che ho visto aveva un chip da 
400MB e chissà quanta RAM!
ciao
S




Non è propriamente esatto. Ci sono i palmari con PalmOS (quelli della stessa
Palm, i Clié della Sony o i VIsor della Handspring), lo Zaurus di Sharp con
Linux e sta per uscirne un altro con AmigaOS. E quelli citati da te in
realtà non hanno WinCE (che non è più usato così tanto), ma Microsoft Pocket
PC 2002 (un WinXP per palmari?).
Per quanto riguarda la memoria, invece, al massimo si arriva a 64MB, ma
molti palmari, specie quelli PalmOS (come il mio Visor) hanno massimo 8 Mb
di RAM (ma la loro filosofia è completamente diversa dai Pocket PC).  Anche
la CPU non è poi un mostro di potenza. A parte i nuovissimi con processore
Intel XScale a 400Mhz (tutti PocketPC, ma il sistema operativo di microsoft
si succhia molte risorse di sistema), la maggiorparte dei palmari gira
intorno ai 100Mhz (i sistemi PocketPC) o addirittura di meno (la maggior
parte dei Palm hanno processori a Motorola 16Mhz o 33Mhz evoluzione dei
vecchi 68XXX montati su Mac e sugli Amiga).
Per concludere. Tranne quelli che programmano per Pocket PC, tutti gli altri
programmatori di palmari hanno la forte tendenza (e necessità) a risparmiare
risorse, ma d'altronde la microsoft stessa non si preoccupa di sfruttare al
meglio (risparmiare) l'hardware, perché dovrebbero farlo gli sviluppattori?
:-)
Giovanni.

 (oggetti)
Graham Nelson, in Jigsaw, ha usato sette oggetti per un solo personaggio
(Black). Prima di arrivare a fine memoria ce ne vuole...
f.