Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Porta che si richiuda alle spalle.

A ri-ciao ragazzi :D
 
Domanda interessante. Se volessi una porta che si richiuda alle spalle?
 
~~~
The Inferno is a room. The Paradiso is a room.
 
The cancello fantastico completamente fatto di caffè e con chiusura automatica is up of Inferno and down of Paradiso. It is a door. The description is "[if noun is open]Incredibilmente [the noun] è rimasto aperto. Probabilmente dovrebbero licenziare il progettista di questo cancello.[otherwise]Ora [the noun] è chiuso[end if].".
 
Instead opening a door:
	say "[italic type]E [the noun] si richiuse alle spalle...[roman type]";
	continue the action;	
	Now noun is closed.
~~~
 
Invito ad esaminare il cancello; andare su; ri-esaminare il cancello.
 
Insomma non riesco ad ottenere il risultato :)
 
Idee?


Invito a leggere il quesito; ma preciso che in ogni caso più genericamente mi sarebbe piaciuto capire come eseguire una frase ogni volta che si "attraversa" un determinato kind di porta.
 
(Se fossi riuscito a far chiudere sempre la porta alle spalle, ogni volta che si digitava direttamente la direzione Inform 7 avrebbe forzato ad aprire per prima cosa la porta che sta in mezzo e per cui avrei potuto eseguire facilmente qualsiasi cosa durante l'attraversamento di quella porta poichè avrei potuo "bindare" il passaggio del player tramite "instead/before/after opening a door" o simili. Altrimenti se la porta è aperta non è possibile bindare il passaggio del player fra una stanza all'altra neanche con "going a door" poichè se l'utente digita la direzione, il player si ritrova direttamente nella stanza indicata dalla direzione senza apparentemente entrare prima nella porta.)
 
Spero di essermi bene espresso :)
 
Sarebbe veramente figo, inoltre, poter sapere la direzione presa.
 
Ciò potrebbe avere molte implementazioni, come per esempio realizzare in modo veramente banale un tipo di porta che dica la frase "Le porte si chiudono e [the noun] va [way]. Le porte si riaprono e ti ritrovi in [place].".
 
Insomma, a voi la voce :)
 
Grazie ancora in anticipo.


Correggo perchè ho scritto da cani:
 
Ciò potrebbe avere molte implementazioni, come per esempio realizzare in modo veramente banale un tipo di porta che dica, mentre la attraversi: "[The noun] si apre e ti porta [way]... Portandoti velocemente in [place]. [The noun] si richiude alle tue spalle.".
 
Esempio pratico:
"L'ascensore si apre e ti porta su... Portandoti velocemente in mansarda. L'ascensore si richiude alle tue spalle.".
 
OK ora la smetto di aggiungere messaggi da solo :)
 
Grazie ancora.

 Idee?
 
Prova così:
 
Instead opening a door:
        say "[italic type]E [the noun] si richiuse alle spalle...[roman type]";
        now the player is in Paradiso;


Sì questa è una ottima soluzione veloce ma mi sarebbe piaciuto imparare a gestire i kind of thing per non creare codici spaghetti :)
 
Provo a usare la tua idea per esprimermi meglio. La scrivo in pseudo Inform 7:
 
~~~~~
A porta magica is a kind of door. A porta magica is open.
 
Instead of going to a room:
	if FRA current location E room is a porta magica:
		say "[The porta magica] si apre e ti porta velocemente in [the room]. [The place] si chiude immediatamente alle tue spalle.";
		Now the player is in room.
~~~~~
 
Ecco questo sarebbe il mio risultato ottimale. Però dato che non credo esista un modo per sapere se una cosa è in mezzo ad un'altra, altro pseudo Inform 7: 
 
~~~~
A porta magica is a kind of door. A porta magica is open.
 
Instead of going to a room:
Repeat with way running through directions:
	Let place be the porta magica way from the location;
	if place is a porta magica:
		say "[The place] si apre e ti porta velocemente in [the room]. [The place] si chiude immediatamente alle tue spalle.";
		break;
~~~~
 
È realizzabile qualcosa di simile?
 
Così mettendo porte magiche fra le stanze, la storia diventa pulita :)


Ho scritto il mio pseudo codice ipotizzando che, al contrario di come avevo ipotizzato all'inizio, se si dice a priori che la stanza sia sempre aperta, si può realizzare teoricamente in modo facile un tipo di porta che segnala quando l'utente attraversa le stanze adiacenti e fa una determinata operazione. Realizzando ciò non bindando sulla porta ma bindando sull' "instead going" di in una stanza (perchè se la porta è sempre aperta abbiamo capito che l'utente non la passa sta porta ma va direttamente nella stanza :D ).
 
Si può fare o è pseudoscienza? :D
 
Grazie ancora.


Mi ero perso le precisazioni. Prova così:
 
----
Include Italian Language by Massimo Stella.
 
A porta magica is a kind of door. A porta magica is usually open.
 
Stanza1 is a feminine gender room. Stanza2 is a feminine gender room.
The porta1 is a feminine gender porta magica.
It is north of stanza1 and south of stanza2. 
 
The can't go through closed doors rule does nothing.
 
After going to a room:
	Let place be the door gone through;
	if place is a porta magica:
		say "[The place] si apre e ti porta velocemente [dap the room gone from] [ap the room gone to]. [The place] si chiude immediatamente alle tue spalle.";
	try looking;
----
 
Se vuoi che la porta sia chiusa e si apra magicamente, usa il trucco che ti avevo proposto prima (sarebbe interessante un'apertura in determinate condizioni come nell'esempio 396 del "Recipe Book": Access all areas)

 Se vuoi che la porta sia chiusa e si apra magicamente, usa il trucco che ti avevo proposto prima (sarebbe interessante un'apertura in determinate condizioni come nell'esempio 396 del "Recipe Book": Access all areas)
 
Oops! Quel "The can't go through closed doors rule does nothing" non serve. Era un rimasuglio di un tentativo più complesso tratto dall'esempio 396 che, però, non ho il tempo di provare... e che ti lascio per esercizio ;)


(Fra l'altro nel mio codice già avevo scritto: «Can't go through closed doors rule response (A) is ""» perchè non mi piaceva che venisse scritto qualcosa quando si attraversava per l'appunto una porta chiusa :D Ora metterò la tua dato che è più formosa.)
 
Oh cavolo è esattamente quello di cui avevo bisogno ed è fatto in modo veramente semplice. E i tokens [the room gone from] e [the room gone to] sono semplicemente magiche e inaspettate.
 
Grazie è perfetto :)
 
Lunga vita a te, ad Inform 7, e ancora all'Italian Language by Massimo Stella per la potenza degli adaptive texts che avete forgiato.
 
Grazie ancora XD


(Fra l'altro per cui la mia "teoria" che indica che le porte non sono attraversate se sono aperte è quindi falsa, schiacciata dal tuo bellissimo "door gone through".)
 
Grazie!

 Grazie!
Jim Aikin propone questo esempio di porta che si chiude alle spalle:
 
Porte pericolose
Uno dei miei studenti mi ha recentemente chiesto come creare una porta che 
si chiude alle spalle del
giocatore. Ho pensato che fosse un puzzle interessante, così l'ho 
programmato. L'esempio riportato
sotto mostra come usare una regola “After” per influenzare ciò che avviene 
quando il giocatore si
sposta da una stanza all'altra:
 
The Corridor is a room. "The corridor stretches east and west from here. A 
massive stone door stands
invitingly open to the north." [In italiano: The corridoio is a room. "Il 
corridoio si estende da est a
ovest. Una massiccia porta di pietra si apre in modo invitante verso nord."]
The Dank Cell is a room. "This cramped chamber smells of mold, and other 
things that are a lot less
pleasant than mold. You can hear rats scurrying behind the walls. A massive 
stone door to the south is
the only visible exit ... using the term 'exit' loosely, as the door [one 
of]has just slammed shut with a
sound suggestive of finality and doom[or]is firmly shut[stopping]."
[In italiano:
 The umida cella is a room. "Questa cella puzza di muffa e di altre cose 
ancora più
spiacevoli della muffa. Una massiccia porta di pietra a sud è la sola uscita 
visibile... anche se il
termine 'uscita' è improprio, infatti la porta [one of]si è improvvisamente 
chiusa con un fragore che
aveva un sentore di definitivo e apocalittico[or]è solidamente 
chiusa[stopping]."]
The massive stone door is a door. The massive stone door is scenery. The 
massive stone door is
north of the Corridor and south of the Dank Cell. The description is "It's 
quite an imposing-looking
stone door." The massive stone door is open, lockable, and locked.
[In italiano: The massiccia porta di pietra is a female door. The massiccia 
porta di pietra is scenery.
The massiccia porta di pietra is north of the corridoio and south of the 
umida cella. The description is
"Una porta di pietra alquanto imponente." The massiccia porta di pietra is 
open, lockable, and locked.]
Instead of closing the massive stone door:
if the massive stone door is open:
say "...but it looks so inviting! Why not just step through it and see 
what's on the other
side?";
otherwise:
say "It seems already to have closed itself without your lifting a finger."
[In italiano:
Instead of closing the massiccia porta di pietra:
if the massiccia porta di pietra is open:
say "... è così invitante! Perché non attraversarla per vedere cosa c'è 
dall'altro lato?";
otherwise:
say "Sembra che si sia già chiusa senza bisogno di muovere un dito."]
After going north from the Corridor:
now the massive stone door is closed;
say "As you step through the stone door, it swings shut with a terrible loud 
BOOM!";
continue the action.
[In italiano:
After going north from the corridoio:
now the massiccia porta di pietra is closed;
say "Appena oltrepassata la porta, questa si chiude con un sonoro BOOM!";
continue the action.]
 

 (Fra l'altro per cui la mia "teoria" che indica che le porte non sono attraversate se sono aperte è quindi falsa, schiacciata dal tuo bellissimo "door gone through".)
 
Beh, "door gone through" non è "mio". Si tratta di una locuzione disponibile per l'azione "going" e quindi è disponibile in "After going". Trovi tutte queste locuzioni nell'ampio indice di Inform 7.
 
Quando hai domande di questo tipo (che sono generali e non specifiche per "Italian Language"), puoi chiedere anche qui: 
http://www.intfiction.org/forum/viewforum.php?f=7
 
 
Il forum è molto attivo ed è il punto di ritrovo "ufficiale" di chi scrive con Inform 7. Ci trovi tutti i guru ;)
 


Grazie ma purtroppo questo modo prevede che per ogni porta si debba inserire un "after" dicendo poi di richiudere la porta :)
 
Invece il codice di Leonardo Boselli è molto più generico:
 
 
~~~~~~~~~~~
Include Italian Language by Massimo Stella.
 
A ascensore is a kind of door. A ascensore is usually open.
 
Before going to a room:
	Let place be the door gone through;
	if place is an ascensore:
		say "[italic type][The place] si apre e ti porta velocemente [dap the room gone from] [ap the room gone to]. [The place] si richiude immediatamente alle tue spalle.[roman type][paragraph break]".
 
The stanza 1 is a room.
The stanza 2 is a room.
The elevatore is up of stanza 1 and down of stanza 2. It is an ascensore.
 
Player is in stanza 1.
~~~~~~~~~~~
 
 
Comando "su".
 
=> <<L'elevatore si apre e ti porta velocemente dallo stanza 1 allo stanza 2. L'elevatore si richiude immediatamente alle tue spalle. >>
 
Bellissimo insomma :)


(Ma io mi riferivo implicitamente ad [inp the door] e compagnia :) )
 
Comunque per problemi generici andrò lì :) Grazie.


È vero che il titolo della discussione era di avere una porta sempre chiusa, ma poi ho precisato (mi scuso ancora) che in realtà mi "bastava" poter fare sempre qualcosa dicendo "da dove" "per dove" "tramite cosa".
 
Grazie ancora :)

 Comunque per problemi generici andrò lì :) Grazie.
 
Però chiedi anche qui se non sono domande da guru: finalmente c'è un po' di vita in questo forum ;)