Inform e Glulx/Inform e ancora Inform/I mezzi di trasporto: differenze tra le versioni
Nuova pagina: ==I mezzi di trasporto== Lasciamo ora da parte Ruins per esaminare l’esempio che segue: {| style="width:100%;" class="wikitable" |<tt>MONTACARICHI<br> di Vincenzo Scarpa<br> Esempio... |
(Nessuna differenza)
|
Versione delle 20:22, 27 set 2009
I mezzi di trasporto
Lasciamo ora da parte Ruins per esaminare l’esempio che segue:
MONTACARICHI di Vincenzo Scarpa |
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. |
Dopo qualche tentativo, riusciamo nel nostro intento. Ora proviamo a spostarci:
>e Il motore sbuffa e singhiozza... |
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. |
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. |
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