Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Errore nel codice [I7]

Ciao! Sto prorvando a scrivere la mia prima stanza ma mi da questo errore per gli oggetti da cassetto a cancello:
Problem. The sentence 'The PC is scenery in Studio'   appears to say two things are the same - I am reading 'PC' and 'scenery in Studio' as two different things, and therefore it makes no sense to say that one is the other: it would be like saying that 'Choucas is Hibou'. It would be all right if the second thing were the name of a kind, perhaps with properties: for instance 'The Hall is a lighted room' says that something called The Hall exists and that it is a 'room', which is a kind I know about, combined with a property called 'lighted' which I also know about.
"prova" by Bonfi96"
Include Italian by Massimo Stella.
[PROPRIETA' OGGETTI]
[Oggetto lontano]
A thing can be lontano or vicino. A thing is usually vicino.
Instead of doing anything other than examining to a lontano thing:
	say "[The noun] [if the noun is plural-named]sono[otherwise]è[end if] troppo [if the noun is female-named]lontana[if the noun is female plural-named]lontane [if the noun is male plural-named] lontani [otherwise] lontano"
[STUDIO]
The Studio is a room."La stanza è luminosa e pulita. Si possono vedere un PC, una scrivania ed un armadio. Sulla parete opposta alla porta c'è una finestra dalla quale si scorge un cancello."
The PC is scenery in Studio. "Un PC molto ben attrezzato."
Understand "computer" and "pc" as PC
The Scrivania is scenery in Studio. "Una normalissima scrivania in legno con un cassetto a lato ed un barattolo di penne sopra." 
The Cassetto is scenery in Studio. [finire con chiave]
The Barattolo is scenery in Studio. "Un barattolo rosso."
The Penna is scenery in Studio. "Una penna nera con una scritta illeggibile."
The Armadio is scenery in Studio. "Un comune armadio a 2 ante."
The Finestra is scenery in Studio. "Da qui si vede un cancello."
The Cancello is scenery in Studio. "Un cancello in ferro battuto di colore nero."
[CORRIDOIO]
The Corridoio is a room."Un corridoio con uno specchio lungo la parete lunga, a sud la cucina, a nord la camera da letto."
The Specchio is scenery in Corridoio. "Uno spechhio acuratamente pulito ma con una crepa nell'angolo in basso a destra."
Non capisco perchè mi dia errore, la sintassi è giusta ed è identica a quella si "specchio" che mi da esatto, spero possiate aiutarmi!
[oggetto lontano] è esatto come codice? intendo la formazione dei plurali e femminili

ho risolto, mancava un maledetto punto, aspetto consigli su [oggetto lontano]

ho aggiunto un end if ma non è corretto, come si può fare una cosa del genere?

non è risolto nulla, falso allarme

 non è risolto nulla, falso allarme
Appena ho un secondo ci do un'occhiata, purtroppo ora sono in studio
time!


Ti scrivo la prima riga di codice come deve essere scritta:
Instead of doing anything other than examining a lontano thing:
        say "[The noun] [if the noun is plural-named]sono troppo
lontan[gendu for the noun][otherwise]è troppo lontan[gendu for the
noun].".
Il resto mi sembra vada bene, però ricordati sempre di finire con un
punto, altrimenti Inform si incasina
:-)

grazie per il codice! gendu non lo conoscevo ancora.
Ma i punti non ho capito bene quando sono da mettere fuori e quando dentro le virgolette...

 Ma i punti non ho capito bene quando sono da mettere fuori e quando dentro le virgolette...
Semplice: dentro le virgolette fanno parte dell'imput del testo.
Ovvero quando vuoi che un testo venga visualizzato con il punto finale
per chiudere la frase, lo metti dentro le virgolette. Il punto fuori
dalle V, fa parte del codice e serve per far si che l'"ordine dato" in
quella data situazione si concluda. E va messo sempre.
Lieto di esserti stato utile ;-)

quindi se voglio un output con il punto devo metterlo sia fuori che dentro?
tipo say "lalalalal.". ?

 tipo say "lalalalal.". ?
Esatto!

allora ho sbagliato tutto :)


Ciao e benvenuto nel *magico* mondo di Inform 7!!!
Questa caratteristica è stata corretta in una delle ultime versioni di
IF7, ora il compilatore comprende anche segni di punteggiatura finali
(punto, punto esclamativo, punto interrogativo) anche se sono
all'interno delle virgolette.
Quindi il pezzo:
The Studio is a room."La stanza è luminosa e pulita. Si possono vedere
un PC, una scrivania ed un armadio. Sulla parete opposta alla porta
c'è una finestra dalla quale si scorge un cancello."
Quello che invece è veramente importante è, in una sequenza di
comandi, mettere sempre il punto e virgola alla fine di ogni comando,
indipendentemente dalla punteggiatura nelle virgolette. Ad esempio se
si usa:
Instead of waiting:
        say "Ciao!";

 allora ho sbagliato tutto :)
Bè vai tranquillo, anchio faccio ancora un sacco di errori durante la
scrittura del codice. Certe volte vado fuori di cabeza per capire dove
sta l'errore, per poi scoprire che magari era un semplice punto
dimenticato!

Continua dal post precedente :)
Instead of waiting:
         say "Ciao!";
         say "Come";
         say "Stai?".
La punteggiatura finale in una sequenza è importante perché dice ad
Inform 7 dove fermarsi.
Ad esempio con un comando tipo:
Instead of waiting:
         say "Ciao!".
         say "Come";
         say "Stai?".
Il compilatore ci darebbe errore perché la sequenza di istruzioni si
fermerebbe al Ciao! e Inform non saprebbe come e quando dire tutto il
resto.
Come nel primo esempio del post precedente, è indifferente mettere o
non mettere il punto fuori dalle virgolette, purché all'interno vi sia
un segno di punteggiatura alla fine. Nel nostro caso, essendoci il
punto interrogativo, potremmo anche scrivere solo:
Instead of waiting:
         say "Ciao!".
         say "Come";
         say "Stai?"
Spero di essere stato vagamente comprensibile, un in bocca al lupo per
la vostra nuova avventura con IF7!
MS

maldetti punti e virgola, non li ho mai usati...
per ora ho usato solo punti ma funziona tutto
grazie ancora!


Come scrivevo diverso tempo fa, il bello di I7 è che è un linguaggio di 
4 generazione come sql dove si dichiara cosa si vuole ma non come 
realizzarlo.
Però, come per sql, sarebbe bello avere un ambiente gui driven, almeno 
per l'inizio, così da generare un mucchio di codice senza preoccuparsi 
di punti, punti e virgola, etc etc.
Ci stavo lavorando ma mi sono arenato sia perché i comandi I7 sono 
davvero tanti sia perché per fare un lavoro serio si dovrebbero 
parserizzare almeno le standard rule in modo da prepopolare le combo e 
altre cosette.
Ma il sistema di parsering di I7 prevede la join tra un template e il 
sorgente per produrre I6. Un approccio interessante ma realizzato con un 
altro linguaggio ancora che, francamente, è scoraggiante.
Chissà. Al prossimo inventario!
pg