# Inform e Glulx/Le basi di Inform/Variabili numeriche e caratteri speciali

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
All’interno di un listato, vengono definiti dei valori che cambiano a seconda del verificarsi o meno di determinate condizioni: una variabile può essere paragonata ad una sorta di contenitore (per esempio una scatola) che contiene tutti questi valori. Ecco un esempio che illustra quanto detto:
Nella funzione Var_num viene definita una variabile numb (che in questo caso funge anche da argomento della funzione) alla quale viene dapprima assegnato, tramite l’operatore =, il valore "0" e successivamente il valore "1"
In Inform, le variabili vengono usate in genere per la gestione dei numeri e dei singoli caratteri. Di default, il range per un valore numerico valido da assegnare ad una variabile varia da –32768 a 32767. Questo significa che è possibile assegnare un valore compreso tra -32768 e 32767, ma non minore di -32768 e non maggiore di 32767. Ricordatevi inoltre, che prima di essere utilizzata, una variabile deve sempre avere assegnato un valore iniziale (deve cioè essere inizializzata) perché, nel momento in cui viene definita, il valore in essa contenuto può essere un numero qualsiasi che spesso e volentieri è al di fuori del range consentito. La conseguenza di tutto questo potrebbe essere davvero drastica, perché per il compilatore non ci sarebbe alcun tipo d’errore, ma il valore sarebbe completamente sballato.
In Inform esistono anche dei caratteri speciali che vengono stampati in un modo un po’ diverso da quello usuale. Nella riga:
ce ne sono ben due:
* la tilde (~), che stampa a video le virgolette; si ottiene tenendo premuto il tasto Alt sinistro + i tasti 1, 2 e 6 del tastierino numerico premuti in rapida successione. Per stampare invece la tilde vera e propria occorre scrivere @@126 (ad esempio print "@@126";);
* il segno di ritorno a capo o di Newline (^); se non si dispone di una tastiera italiana, questo carattere è ottenibile tenendo premuto il tasto Alt sinistro + i tasti 9 e 4 del tastierino numerico premuti in rapida successione. Per stampare invece il carattere "^" vero e proprio occorre scrivere @@94.
Ne esistono ovviamente anche degli altri. I più usati sono:
* @^ che pone l’accento circonflesso sulle lettere a, e, i, o, u, A, E, I, O, U (es.: print "@^e";);
* @c che pone la cediglia sulle lettere c o C;
* @: che pone la dieresi sulle lettere a, e, i, o, u, A, E, I, O, U;
* @' che pone l’accento acuto sulle lettere a, e, i, o, u, A, E, I, O, U (es.: print "perch@'e";);
* @` che pone l’accento grave sulle lettere a, e, i, o, u, A, E, I, O, U (es.: print "@`e";);
* @@92 che stampa a video il carattere \ (in inglese backslash);
* @@64 per stampare a video il carattere @;
* @LL per stampare a video il segno £;
* la parentesi graffa aperta { che si ottiene tenendo premuto il tasto ALT sinistro + i tasti 1, 2, 3 del tastierino numerico premuti in rapida successione;
* la parentesi graffa chiusa } che si ottiene tenendo premuto il tasto ALT sinistro + i tasti 1, 2, 5 del tastierino numerico premuti in rapida successione.

## Note

* ↑ Cliccate qui per scaricare il listato di questo esercizio (il file 3.04.inf).
* ↑ Provate come esercizio a sostituire il valore "numb = 1" con "numb = 1234567" per vedere cosa succede.
* ↑ Un elenco completo dei caratteri stampabili è disponibile alla tabella 2B dell’Inform Designer Manual di Graham Nelson. Jif, inoltre, dà la possibilità di utilizzare i caratteri normali (quelli cioè codificati nel codice ASCII) anziché quelli codificati nel codice ZSCII (ad esempio è al posto di @`e); questo è possibile tramite il mapping dei caratteri, una delle tante caratteristiche che lo differenziano da tutti gli altri programmi del genere.
* ↑ Inform supporta anche i caratteri Unicode (come ad esempio il simbolo dell’euro "€") che non fanno parte della tabella citata nella nota 3. Ulteriori informazioni potete trovarle al capitolo 5.