Inform e Glulx/Inform e ancora Inform/I mezzi di trasporto
I mezzi di trasporto
[modifica | modifica sorgente]Lasciamo ora da parte Ruins per esaminare l’esempio che segue:
MONTACARICHI di Vincenzo Scarpa Esempio di spostamento sopra un altro oggetto Versione 1 -- Numero di serie 050425 Inform v6.30 -- Libreria 6/11 -- Infit v2.5 S Basamento Ovest Direzioni: sud, est Puoi vedere un vecchio montacarichi spento qui. >esamina il montacarichi È tutto arrugginito. >
Tutto quello che per ora riusciamo a capire, è che siamo in una stanza con un vecchio montacarichi a nostra disposizione. Proviamo allora a salirci sopra e ad accenderlo:
>sali sul montacarichi Ti trovi sopra il montacarichi. >accendi il montacarichi Dopo un frastuono assordante, il montacarichi non si mette in moto. Forse dovresti riprovare... >ancora Dopo un frastuono assordante, il montacarichi non si mette in moto. Forse dovresti riprovare... >ancora Dopo un frastuono assordante, il montacarichi si mette in moto. >g Basamento Ovest (sopra il montacarichi) Direzioni: sud, est >
Dopo qualche tentativo, riusciamo nel nostro intento. Ora proviamo a spostarci:
>e Il motore sbuffa e singhiozza... Basamento Est (sopra il montacarichi) Direzioni: ovest Ci sono delle scale poco illuminate qui, che portano al piano superiore. >su Hai mai visto un montacarichi salire su una scala? >
Come avete appena visto, in Inform ci si può spostare di stanza in stanza anche attraverso un mezzo di trasporto; inutile dire quanto questo possa essere di estrema utilità (provate, ad esempio, a immaginare una stanza piena di casse che nascondono un passaggio). Naturalmente, come tutti i mezzi di trasporto che si rispettino, è anche possibile spegnerlo:
>spegni il montacarichi Il montacarichi si è spento. Non sei sicuro che riesca a mettersi di nuovo in moto. >o Non puoi andare da nessuna parte se il montacarichi è spento. >
rendendo ovviamente impossibile qualsiasi ulteriore spostamento con esso (occorre accenderlo di nuovo, con tutte le difficoltà del caso). A questo punto, possiamo allora scendere per proseguire "a piedi":
>scendi dal montacarichi Sei sceso dal montacarichi. Basamento Est Direzioni: ovest Puoi vedere un vecchio montacarichi spento qui. Ci sono delle scale poco illuminate qui, che portano al piano superiore. >o Basamento Ovest Direzioni: sud, est >
Interessante, vero? Vediamo allora la descrizione del montacarichi:
Object forklift "montacarichi" Aerobsm with name 'montacarichi' 'sollevatore', describe [; print "^Puoi vedere un vecchio montacarichi "; if (self has on) "acceso qui."; "spento qui."; ], before [; Climb: <<Enter self>>; Examine: print_ret "@`E tutto arrugginito."; Go: if (self has on) { if ((noun == u_obj) && (location == Bse)) { print "Hai mai visto un montacarichi salire su una scala?^"; return 2; ! Non si muove } else { print "Il motore sbuffa e singhiozza...^”; return 1; ! Vai pure } } else { print "Non puoi andare da nessuna parte se il montacarichi @`e spento.^"; return 2; } SwitchOn: if (player in self) { if (self hasnt on) { if (random(4)==2) { give self on; print "Dopo un frastuono assordante, il montacarichi si mette in moto.^"; } else print "Dopo un frastuono assordante, il montacarichi non si mette in moto. Forse dovresti riprovare...^"; } else rfalse; } else print "Senza salirci sopra? Forse sei un telepate...^"; rtrue; SwitchOff: if (player in self) { if (self has on) { give self ~on; print "Il montacarichi si @`e spento. Non sei sicuro che riesca a mettersi di nuovo in moto.^"; } else rfalse; } else print "Prima devi salirci sopra.^"; rtrue; ], has supporter static enterable switchable ~on;
Le uniche novità, rispetto a quanto visto finora, sono i valori 1
e 2
che vengono ritornati col verbo Go
. Il primo indica a Inform che il montacarichi può muoversi (nel nostro caso solo quando è acceso) mentre il secondo lo ferma (nel nostro caso quando è spento o se vogliamo salire sulle scale). L’istruzione random
genera invece un numero casuale (in questo caso da 1 a 4) per rendere più "difficoltosa" l’accensione del mezzo [1].
Note
[modifica | modifica sorgente]