Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [Inform] - Dubbi & Perplessità

Ma possibile che questo linguaggio lo sto imparando solo io (o almeno ci 
sto provando)? Vabbè.
Manuale del buon Vincenzo
3.2 Il fungo
Fino a qui era tutto una cavolata ;-)
Ora iniziano i problemucci:
1| Object -> mushroom "fungo macchiato"
2|   with name 'macchiato' 'macchiettato' 'fungo' 'velenoso',
3|      initial
4|         "Un fungo macchiato cresce dalla terra fradicia, su un gambo
5|         lungo.",
6|      description
7|         "Il fungo @`e ricoperto da delle macchie e non sei del tutto
8|         sicuro che non sia velenoso.",
9|      after [;
10|        Take:
11|           if (self.mushroom_picked)
12|              "Hai raccolto il fungo mezzo marcio.";
13|           self.mushroom_picked = true;
14|           "Hai raccolto abilmente il fungo, senza staccarlo dal suo
15|           gambo sottile.";
16|        Drop:
17|           "Il fungo cade sul terreno e comincia a decomporsi.";
18|        Eat:
19|            steps.rubble_filled = false;
20|            "Lo sgranocchi ad un angolo, incapace di capire l'origine
21|            di un gusto cos@`i acre, distratto dal volo di un macao
22|            sopra la tua testa che sembra quasi un'esplosione nel
23|            sole. Il battito delle sue ali @`e quasi assordante, e
24|            delle pietre crollano una sull'altra.";
25|            ],
26|    mushroom_picked false,
27| has edible;
Ok iniziamo:
riga 11: if(self.mushroom_picked)   ... che cosa vuol dire? Inform si 
chiede se la variabile è true o false? per come la vedo io non dovrebbe 
essere qualcosa tipo if(self.mushroom_picked == true)? Boh.
riga 12: il codice appartenente ad "if" termina con il punto e virgola o 
con l'indentazione? Nel caso in cui il codice appartenente ad if sia 
molto lungo che si fa, si scrive tutto su di una riga?
riga 26: mushroom_picked false ... stesso problema di prima, non 
dovrebbe essere mushroom_picked = false ?
Piccola curiosità, non sarebbe meglio dichiarare le variabili prima di 
after e before? Lo so che non si può (anzi non lo so) però.....
Un cioccolatino gusto zucca a chi mi risponde
Ah Vincenzo, prendi appunti, forse è solo un mio strafalcione ma mi 
sembra che il manuale non dia risposte a questi quesiti (no, la mia 
stima nei tuoi confronti non è mutata ;-)   ).
-- 
"La vita non è un film, è molto meglio... è più interattiva ;-) "
_______________________
The Iron Pumpkin Studio
http://ironpumpkin.altervista.org

 Un cioccolatino gusto zucca a chi mi risponde
Bleah... ;-)
bye
-- 
Paolo Lucchesi
email: 
pluc...@tin.it
homepage: 
http://www.paololucchesi.it
"Non viviamo in un mondo perfetto (per fortuna)"

 Un cioccolatino gusto zucca a chi mi risponde
grazie.
HAPPY INFORMING
Giovanni
-- 
Giovanni Riccardi - 
giov...@composizioni.net
 - 
http://www.composizioni.net

 Bleah... ;-)
Lo dici tu :-)
-- 
"La vita non è un film, è molto meglio"


 
yahu, speravo che qualcuno me lo dicesse ;-)
-- 
"La vita non è un film, è molto meglio"


 proprieta? naturalmente sul DM4, mo lo vado a scaricare.
No, la proprieta' e' mushroom_picked (infatti ti riferisci ad essa 
sempre con mushroom.mushroom_picked o self.mushroom_picked), ed e' una 
proprieta' da te definita, non di libreria.
Il DM4 scaricatelo in ogni caso. E' grosso, sporco e ignorante, ma 
_serve_. Non importa che tu lo studi, ma devi averlo a portata di mano.


 (cond)...>. E un flag e' la piu' semplice delle condizioni.
Pero' se ti dico cosi' rischio di farti sbagliare. Stai attento che in 
genere < if (variabile)... > e < if (variabile == true) > non sono 
assolutamente equivalenti. Infatti la prima forma esegue le istruzioni 
"controllate" se e solo se variabile e' diversa da zero, mentre la 
seconda forma esegue le istruzioni "controllate" se e solo se variabile 
vale esattamente 1 (infatti false vale sempre zero, e true vale sempre uno).
Come ti ho gia' detto, se sei sicuro che variabile puo' assumere solo i 
valori 0 e 1, le due forme sono equivalenti. Ma solo in questo caso.
Idee abbastanza confuse?
bye
-- 
Paolo Lucchesi
email: plucchesi(at)tin(dot)it
home page: 
http://www.paololucchesi.it
"Tempus Edax Rerum"

Un cioccolatino gusto zucca a chi mi risponde
per me due, grazie.
max "torredifuoco" bianchi

_serve_. Non importa che tu lo studi, ma devi averlo a portata di mano.
Senza voler ricreare un flame sui vari manuali, penso che il DM4 sia
molto utile a livello di "atlante". Non so una cosa, vado sul DM4 e la
trovo. Almeno IMHO...
Ciao da
Vincenzo

essere qualcosa tipo if(self.mushroom_picked == true)? Boh.
Vai avanti a leggere il manuale. Molti quesiti iniziali (non tutti
forse, ma la maggior parte sì) ti diventeranno più chiari a mano a 
mano che andrai avanti nella lettura. Ho preferito ricorrere a questo
stratagemma piuttosto che infarcire il programmatore con una sfilza di
nozioni tutte in una volta.
Per quanto riguarda la definizione delle variabili all'inizio
piuttosto che alla fine, hai ragione, ma l'avventura è di Nelson e non
mia e ho preferito lasciarla (nel bene e nel male) così com'è... :))
Grazie comunque e ciao da
Vincenzo

(piccolissimo) mentre "studio" ibg/gip. in pratica, testo sul campo
Hai per caso dato un'occhiata anche al mio manuale?
Se sě, hai qualche parere/consiglio da esprimere?
Grazie e ciao da
Vincenzo

 bye
Abbastanza, da quello che ho capito if(variabile) controlla solo se la 
variabile "esiste"
-- 
"La vita non è un film, è molto meglio"


 
Con piacere... fa lo stesso se sono duri (c'č molto ferro yak yak.... ok 
forse non tutti l'hanno capita, sono due battute in una).
-- 
"La vita non č un film, č molto meglio"


 
Il "saggio" quando imparerň Inform
-- 
"La vita non č un film, č molto meglio"


Vincenzo
ciao ciao
max "torredifuoco" bianchi

Sei un Dio.... "Lo Scarpa" č geniale, d'ora in poi lo chiamerň cosě (il 
manuale).
-- 
"La vita non č un film, č molto meglio"


forse non tutti l'hanno capita, sono due battute in una).
non ti preoccupare... io i cioccolatini gusto zucca li rompo a
craniate... :D
max "torredifuoco" bianchi

 variabile "esiste"
No. l'IF controlla se la variabile è vera (naturalmente deve per forza 
esistere - in caso conrario Inform non ti compilerebbe neanche il 
gioco). Quello che ha fatto Paolo è semplicemente sottolineare una 
piccola differenza tra "IF (variabile)" e "IF(espressione==TRUE)".
Giusto per chiarire le cose, TRUE e FALSE sono due costanti interne di 
Inform che valgono rispettivamente 1 e 0. Se non fossero definite 
internamente le potresti definire tu con le istruzioni
Constant TRUE = 1;
Constant FALSE = 0;
(per entrare un po' nel merito del linguaggio di programmazione: in 
Inform non esiste un tipo di dati booleano, come invece in altri linguaggi).
L'istruzione "IF (variabile == TRUE)" (ma potresti avere anche una 
espressione più complessa al posto della variabile) quindi è considerata 
  come "IF (variabile == 1)". Questo va benissimo per le flag, cioè 
quelle variabili che possono assumere sono due valori: 0 o 1, vero o 
falso, acceso o spento, ecc.
Se scrivi invece "IF (variabile)" e la variabile all'interno del 
programma assume sono i valori 0 e 1, allora questa espressione è 
assolutamente equivalente a quella di prima. Se però, per qualsiasi 
motivo (per errore o per tua volontà) la variabile vale un numero 
diverso da 0, ad esempio 5, cosa deve fare il programma? Se la IF 
verifica solo se la variabile è vera (1) o false (0), cosa deve fare in 
questo caso? Il programma non saprebbe cosa fare, visto che 0 è "il 
contrario" di 1 solo in un sistema che può assumere questi due valori.
Ebbene, in questo caso la condizione sarà comunque verificata e verrà 
eseguito il blocco di codice che segue. Cioè per condizione verificata 
si intende "verifica se la variabile è un numero intero diverso da 0". 
Cioè è come se fosse: FALSE = 0, TRUE = n dove n è un qualsiasi numero 
non nullo.
Allora quando usare una o l'altra istruzione? Il mio consiglio è: se 
devi trattare una flag utilizza "IF (espressione == TRUE)", è più 
esplicito e il codice risulta più leggibile e chiaro. Puoi usare l'altra 
nel caso invece stai trattando con variabili che possono assumere anche 
valori diversi da uno, ma devi comunque verificare che siano diversi da 0.


Il "saggio" quando imparerò Inform
Quasi mi dimenticavo... quando ti dico che devi continuare a leggere
il manuale, intendo dire che dovresti dare anche un'occhiata al
capitolo 2, che spiega appunto le basi della programmazione (i cicli
IF, le variabili, ecc.). Ad ogni modo, terrò a mente i problemi da te
esposti per poi dare un eventuale tocco finale prima della fine (che
non so ancora quando arriverà). :))


forse non tutti l'hanno capita, sono due battute in una).
Puah. Questi cioccolatini sono quasi peggio del pollo alla nutella...
Ciao da
Vincenzo

manuale).
Il manuale "Lo Scarpa"? Ma ti sembra un bel nome? :))))
Ciao da
Vincenzo

comunque tranquillo, testero' anch'io le tue capacita' d'autore...
Uh, fammi sapere. Comunque Ruins č piů complesso degli esempi
di Firth, ma una volta appreso si č in grado di cominciare a scrivere
una piccola avventura di un livello abbastanza buono, almeno IMHO.
Ciao da
Vincenzo

 Vincenzo
Bella li, devo ancora dare una letta agli Array (mi ero rotto e sono 
passato a Ruins), per il resto ok.
-- 
"La vita non è un film, è molto meglio"


 variabile "esiste"
No: if(variabile) controlla se la variabile e' diversa da zero.
bye
-- 
Paolo Lucchesi
email: 
pluc...@tin.it


 Il manuale "Lo Scarpa"? Ma ti sembra un bel nome? :))))
a me paice moltissimo

Vincenzo
max "torredifuoco" bianchi
p.s. cumunque si usa, dalle mie parti, nominare i manuali tramite
articolo determinativo e nome dell'autore - con un sottinteso: il
(manuale di) scarpa, adattando l'articolo a dare -> lo scarpa...

 
Non proprio tutta dai.

 Non proprio tutta dai.
No, proprio tutta... Per questo e' cosi' "pesante"...
bye
-- 
Paolo Lucchesi
email: plucchesi(at)tin(dot)it


 No, proprio tutta... Per questo e' cosi' "pesante"...
non scherziamo; ruins è semplicissima!

 non scherziamo; ruins č semplicissima!
Cosi' imparo a leggere i post una riga si' e una riga no' (quando sono 
al lavoro capita). Pensavo si stesse parlando del DM4...


 al lavoro capita). Pensavo si stesse parlando del DM4...
ah ecco, mi pareva....  :)




Vabbč, chiamatelo come volete, tanto sempre lui č. Mi chiedo quando lo
finirň e soprattutto che titolo gli darň... boh... :)
Ciao da
Vincenzo



Ha però l'indubbio vantaggio di illustrare molte delle caratteristiche
principali di Inform con un codice che, tutto sommato, non è poi
lunghissimo, soprattutto se paragonato a un'AT vera e propria.
E' ovvio però che Inform di per se va ben oltre... :)
Ciao da
Vincenzo