# Inform e Glulx/RUINS, l'avventura comincia/La cassa d'imballaggio (riuscirete a riempirla tutta)?

Inform e Glulx
Copertina Tutti i moduli · Sviluppo
* IntroduzioneInform e Glulx/Introduzione
* Cosa occorre per iniziareInform e Glulx/Cosa occorre per iniziare
** Compilatore, interprete e altro ancora
** L'installazione
** Perché IF-IDE?
** Per chi non vuole (o non può) usare IF-IDE e Windows Frotz 2002
* Le basi di Inform
** A cosa serve questo capitolo?Inform e Glulx/Le basi di Inform/A cosa serve questo capitolo?
** Benvenuto in InformInform e Glulx/Le basi di Inform/Benvenuto in Inform
** Le funzioniInform e Glulx/Le basi di Inform/Le funzioni
** Variabili numeriche e caratteri specialiInform e Glulx/Le basi di Inform/Variabili numeriche e caratteri speciali
** Un po' di matematica non guasta maiInform e Glulx/Le basi di Inform/Un po' di matematica non guasta mai
** Passaggio dei parametri e ritorno dei valoriInform e Glulx/Le basi di Inform/Passaggio dei parametri e ritorno dei valori
** L'input dei dati numerici: l'istruzione GetnumberInform e Glulx/Le basi di Inform/L'input dei dati numerici: l'istruzione Getnumber
** If (condition) then... else...Inform e Glulx/Le basi di Inform/If (condition) then... else...
** While e do... untilInform e Glulx/Le basi di Inform/While e do... until
** For, break e continueInform e Glulx/Le basi di Inform/For, break e continue
** L'utilizzo delle costantiInform e Glulx/Le basi di Inform/L'utilizzo delle costanti
** Switch... caseInform e Glulx/Le basi di Inform/Switch... case
** Salti ed etichetteInform e Glulx/Le basi di Inform/Salti ed etichette
** Caratteri e stringheInform e Glulx/Le basi di Inform/Caratteri e stringhe
** I vettoriInform e Glulx/Le basi di Inform/I vettori
** Le stringhe numericheInform e Glulx/Le basi di Inform/Le stringhe numeriche
** Le direttiveInform e Glulx/Le basi di Inform/Le direttive
** Il debuggingInform e Glulx/Le basi di Inform/Il debugging
* RUINS, l'avventura comincia
** Il grande altopiano (dalla padella alla brace)Inform e Glulx/RUINS, l'avventura comincia/Il grande altopiano (dalla padella alla brace)
** La cassa d'imballaggio (riuscirete a riempirla tutta)?Inform e Glulx/RUINS, l'avventura comincia/La cassa d'imballaggio (riuscirete a riempirla tutta)?
** Il fungo (velenoso o non velenoso)?Inform e Glulx/RUINS, l'avventura comincia/Il fungo (velenoso o non velenoso)?
** Chi ha paura del buio (gli insetti no di certo)?Inform e Glulx/RUINS, l'avventura comincia/Chi ha paura del buio (gli insetti no di certo)?
** La porta di pietra (gialla è più carina)Inform e Glulx/RUINS, l'avventura comincia/La porta di pietra (gialla è più carina)
** La chiave di pietra (così non si arruginisce)Inform e Glulx/RUINS, l'avventura comincia/La chiave di pietra (così non si arruginisce)
** Il primo tesoro (speriamo che non sia un anello)Inform e Glulx/RUINS, l'avventura comincia/Il primo tesoro (speriamo che non sia un anello)
** La maschera facciale (non di carnevale)Inform e Glulx/RUINS, l'avventura comincia/La maschera facciale (non di carnevale)
** Il ritorno della mummia (non è un film, è tutto vero)Inform e Glulx/RUINS, l'avventura comincia/Il ritorno della mummia (non è un film, è tutto vero)
** L'incrocio di Xibalbá (ma è davvero così pauroso)?Inform e Glulx/RUINS, l'avventura comincia/L'incrocio di Xibalbá (ma è davvero così pauroso)?
** La sfera di pietra pomice (avete indossato il casco)?Inform e Glulx/RUINS, l'avventura comincia/La sfera di pietra pomice (avete indossato il casco)?
** Una gabbia per un facocero (e l'archeologo che fine ha fatto)?Inform e Glulx/RUINS, l'avventura comincia/Una gabbia per un facocero (e l'archeologo che fine ha fatto)?
** La cripta dei nove signori della notte (o sette come i nani)?Inform e Glulx/RUINS, l'avventura comincia/La cripta dei nove signori della notte (o sette come i nani)?
** Un archeologo per un facocero (basta solo che non grugnite)Inform e Glulx/RUINS, l'avventura comincia/Un archeologo per un facocero (basta solo che non grugnite)
** La fine di RUINS è giunta (ma con Inform siete solo all'inizio)Inform e Glulx/RUINS, l'avventura comincia/La fine di RUINS è giunta (ma con Inform siete solo all'inizio)
* Inform e ancora Inform
** La Status LineInform e Glulx/Inform e ancora Inform/La Status Line
** I menuInform e Glulx/Inform e ancora Inform/I menu
** I labirinti e i nomi pluraliInform e Glulx/Inform e ancora Inform/I labirinti e i nomi plurali
** Il tempoInform e Glulx/Inform e ancora Inform/Il tempo
** I coloriInform e Glulx/Inform e ancora Inform/I colori
** I mezzi di trasportoInform e Glulx/Inform e ancora Inform/I mezzi di trasporto
** Su e giù con l'ascensoreInform e Glulx/Inform e ancora Inform/Su e giù con l'ascensore
** Gli NPC (o PNG in italiano)Inform e Glulx/Inform e ancora Inform/Gli NPC (o PNG in italiano)
** Le estensioni (o librerie aggiuntive)Inform e Glulx/Inform e ancora Inform/Le estensioni (o librerie aggiuntive)
** Varie, listati e decompilatoreInform e Glulx/Inform e ancora Inform/Varie, listati e decompilatore
* Inform e Glulx
** Cos'è GlulxInform e Glulx/Inform e Glulx/Cos'è Glulx
** L'installazione di JifInform e Glulx/Inform e Glulx/L'installazione di Jif
** La compilazioneInform e Glulx/Inform e Glulx/La compilazione
** L'esecuzioneInform e Glulx/Inform e Glulx/L'esecuzione
** Da Inform a GlulxInform e Glulx/Inform e Glulx/Da Inform a Glulx
** La grafica e il sonoroInform e Glulx/Inform e Glulx/La grafica e il sonoro
** L'allineamento delle immaginiInform e Glulx/Inform e Glulx/L'allineamento delle immagini
** Avventure senza graficaInform e Glulx/Inform e Glulx/Avventure senza grafica
** I colori e gli stili del testoInform e Glulx/Inform e Glulx/I colori e gli stili del testo
** La personalizzazione della Status LineInform e Glulx/Inform e Glulx/La personalizzazione della Status Line
** output dei datiInform e Glulx/Inform e Glulx/L'input/output dei dati
** VarieInform e Glulx/Inform e Glulx/Varie
** GULL, il manuale ufficialeInform e Glulx/Inform e Glulx/GULL, il manuale ufficiale
* Appendici
** Appendice A - Le azioni principaliInform e Glulx/appendici/Appendice A - Le azioni principali
** Appendice B - I messaggi della libreriaInform e Glulx/appendici/Appendice B - I messaggi della libreria
** Appendice C - Gli errori della compilazioneInform e Glulx/appendici/Appendice C - Gli errori della compilazione
** Appendice D - La soluzione di RuinsInform e Glulx/appendici/Appendice D - La soluzione di Ruins
** Appendice E - Come usare Windows Frotz 2002Inform e Glulx/appendici/Appendice E - Come usare Windows Frotz 2002
** Appendice F - Le mappeInform e Glulx/appendici/Appendice F - Le mappe
** Appendice G - Scrivere, distribuire e reperire delle avventure testualiInform e Glulx/appendici/Appendice G - Scrivere, distribuire e reperire delle avventure testuali
Modifica il sommario
Inform? Oggetti? Funzioni? Vi chiedete a cosa possano servire tutte queste nozioni, e vi chiedete anche chi possa essere così pazzo da scrivere un manuale del genere. Urla di scimmie, pipistrelli, pappagalli, macao sono i soli suoni che in questo momento vi fanno compagnia. Vi guardate intorno e vedete che una cassa d'imballaggio giace qui, pronta per contenere eventuali scoperte di alto valore culturale da riportare alla civiltà. Abbandonate il manuale di Inform al suo destino e andate a esaminare la cassa che a sua volta contiene un ingombrante, robusto e tenace modello di macchina fotografica a lastre con la struttura di legno, e un giornale stropicciato di un mese fa. Li prendete entrambi e li mettete nel vostro inventario, insieme agli oggetti che già possedete: la mappa di Quintana Roo, la lampada al sodio e il dizionario Maya di Waldeck.

## La cassa d'imballaggio (riuscirete a riempirla tutta)?

Abbiamo detto che un’avventura testuale è costituita da un insieme di oggetti. Ora, quello che occorre capire, è come (e soprattutto quando) si devono collegare tra loro; ecco perché nel nostro programma sono state inserite le definizioni di alcuni nuovi oggetti:
Partiamo dall’oggetto packing_case (la nostra cassa d’imballaggio). La prima cosa che si può notare, è la presenza, alla prima riga, del simbolo ->: in questo modo, diciamo ad Inform che questo oggetto è visibile nell’oggetto Forest (che cioè la cassa d’imballaggio è visibile dal giocatore quando si trova nel Grande Altopiano). Esiste comunque un modo più semplice per mettere in relazione i due oggetti. Scrivendo infatti:
otteniamo lo stesso e identico risultato, ma per questa avventura si è deciso di adottare il simbolo -> anziché il nome dell’oggetto di appartenenza. Ogni oggetto inoltre, può essere chiamato con dei nomi diversi durante il gioco. È quello che accade nella riga with name... e se scrivo ad esempio: prendi la cassetta o prendi la cassa, per Inform il riferimento all’oggetto packing_case è identico per entrambi i comandi (esegue cioè la stessa azione in entrambi i casi).
Il testo posto dopo la proprietà initial è quello che appare tutte le volte che il giocatore si trova nel Grande Altopiano e descrive la cassa in questione. Se si cerca invece di prenderla (Take), rimuoverla (Remove), o spingerla in una direzione (PushDir), la risposta è sempre che è troppo pesante da spostare...
Gli oggetti camera (la macchina fotografica) e newspaper (il giornale) presentano solo una novità: la presenza del doppio simbolo -> -> per dire a Inform che sono visibili all’interno della cassa d’imballaggio. Occorre notare che, in questo caso, l’ordine di definizione degli oggetti è molto importante: in poche parole, l’oggetto packing_case deve essere messo subito dopo l’oggetto Forest, mentre gli oggetti newspaper e camera devono essere messi subito dopo l’oggetto packing_case.
La mappa si trova invece nell’inventario del giocatore, e questo è possibile grazie all’istruzione move che nella funzione Initialise la sposta insieme al dizionario e alla lampada al sodio che verranno descritti in dettaglio più avanti.
Per quanto riguarda gli attributi, qui ne abbiamo in abbondanza, nell’ordine:
* female: indica che l’oggetto è femminile (se invece è maschile – in inglese male - non si mette nulla, perché è il valore di default);
* static: l’oggetto è fisso al suo posto e non può essere preso o spostato dal giocatore;
* container: l’oggetto in questione è un contenitore che, come dice la parola stessa, può contenere al suo interno altri oggetti che possono essere a loro volta presi, esaminati, usati e riposti;
* open: "Elementare Watson" come direbbe Sherlock Holmes; la cassa è aperta, ma il giocatore non può entrarvi dentro. Se questo attributo non è presente la cassa è chiusa di default;
* openable: la cassa può essere aperta o chiusa dal giocatore o da un altro personaggio del gioco (che in gergo "informiano" è un NPC o, in italiano, PNG).
Inform prevede anche la possibilità di associare uno specifico articolo a ogni oggetto. Di default, se è maschile gli viene attribuito l’articolo indeterminativo un, se è femminile una. Nel caso della mappa però, essendo proprio la mappa di Quintana Roo (nel senso che ne esiste una sola), è meglio attribuirle l’articolo la. Ora, se durante il gioco proviamo a fare una lista dell’inventario:
Inform si "accorge" del nuovo articolo e lo visualizza insieme al nome dell’oggetto cui appartiene.
Le ultime due cose da notare in questo paragrafo sono:
* l’aggiunta del verbo Listen (in italiano Ascolta) all’oggetto Forest. In questo modo, se durante il gioco il giocatore si trova nel Grande Altopiano e dà il comando "ascolta", viene visualizzato il messaggio "Urla di scimmie, pipistrelli, pappagalli, macao.". Notate che di default questo comando dà il messaggio "Non si sente niente di particolare." e questa è la dimostrazione pratica di come Inform offra un ambiente integrato ma anche altamente personalizzabile. Attenzione però: il messaggio da noi voluto viene visualizzato solo nell’oggetto Forest, mentre per tutte le altre locazioni il messaggio sarà sempre quello di default (a meno che non si prevederanno nuovi messaggi in altre locazioni);
* l’inserimento della costante MAX_CARRIED, il cui valore indica il numero massimo di oggetti trasportabili dal giocatore (100 di default). Quindi, quando il nostro inventario è pieno (se possediamo cioè il numero massimo di oggetti ➨ nel nostro caso 7), non è più possibile prenderne altri, a meno che non se ne posi qualcuno (per es. posa il giornale).

## Note

* ↑ Vi consiglio di abbondare sempre con i nomi alternativi, perché in questo modo non si limita il campo di azione del giocatore (si evita che l’oggetto possa essere chiamato in un modo soltanto, rendendo così le azioni meno frustranti).
* ↑ Acronimo inglese di Non Player Characters.
* ↑ Acronimo di Personaggi Non Giocatori.
* ↑ Cliccate qui per scaricare il listato di questo esercizio (il file 4.02.inf).