Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Modulo Base di Colombini

Ciao,
mi rivolgo a tutti e (spero che mi legga) a Enrico Colombini.
Circa (quasi.....) un anno fà, quando nacque il NG mi rivenne la voglia di
scrivere nuove AT.
Quando lo feci, anni indietro per la prima volta,  usai il Modulo Base di
Colombini e ne uscii soddisfatto e vincitore.
Così, appunto un annetto fà, ho deciso di convertire il tutto in VB.
Dopo un pò di ammattimento (dovuto soprattutto ad entrare nella logica di
programmazione di VB....) ce l'ho fatta.
Ora, premesso che il codice è un pò cambiato (interfaccia fissa, comandi
selezionabili o scrivibili, supporto audio/grafico, nuove funzioni (p.e. :
passaggio del tempo, messaggi notturni o diurni, personaggi reali, dialoghi
stile SCUMM ecc. ecc.), e altre cosette che spero di mostrare presto....),
ho un paio di dubbi che spero possiate (e Colombini in primis.....)
risolvermi:
1 - c'è una variabile nel modulo in GWBasic che mi sta assillando: AEX.
Viene impostata a -1 in fase in init, poi a 0 nel parser e di nuovo a -1 in
esecuzione dell'azione. A cosa ca@#o serve???? L'azione, se trovata, viene
fleggata e riconosciuta da AEX?????? E se si, a quale pro???? Forse sto
annegando nel classico bicchiere di Grappa, ma non capisco se è eliminabile
con un sano ciclo di Routine.....
2 - Ho "eliminato" le due routine (tra l'altro identiche) di ricerca del
codice nel dizionario, e dell'azione.
Quelle vecchie tagliavano in due l'Array, e se puntavano (CULO...!!!! )
subito il codice cercato, lo estraevano, altrimenti scendevano o salivano il
vettore a seconda dell'ordine numerico o alfabetico. Beh, io, pensando alle
nuove macchine (Nmila mega di RAM installati.......) ho pensato di
sostituirle con un buon caro vecchio ciclo FOR dall'inizio TO alla fine e se
trovo quello uguale, borda!, esco fuori......  Secondo voi rallenta se
inserisco 2-300 oggetti, o allo stesso modo, 2-300 azioni in un vettore?
3 - Il parser. Secondo me, quello sviluppato da Colombini non era male.
Però, visto che il Parser è il cuore del motore, volevo chiedere un
consiglio a voi su quale miglioria poter apportare (chiaramente per chi lo
conosce.... chi non lo conosce può contribuire dicendomi cosa vorrebbe che
facesse un Parser.....)
4 - E questa è per Enrico: potevo utilizzare il tuo codice, vero? Giuro che
ti cito tra i Credits...!!! :-)
Attendo vostre.....!

 Potevo utilizzare il tuo codice, vero? Giuro che ti cito tra i Credits...!!! 
Si'.
  .Erix.

vorrebbe che facesse un Parser.....)
Mmm, è una questione complessa e varia, essendo il Parser intimamente
connesso al "motore" dell'avventura. Provo comunque a riassumere ciò
che mi viene in mente in questo momento:
- il Parser dovrebbe per prima cosa contemplare un largo elenco di
sinonimi/abbreviazioni per i comandi/verbi, e sinonimi anche per i
sostantivi/oggetti;
(per esempio, per il comando "inventario" implementare sinonimi
classici come "i", "inv", "elenco", "oggetti"; per il verbo "esamina"
+ oggetto, "guarda", "osserva" ecc. parimenti, al posto di "mela"
dovrei poter dire "frutto" e via dicendo)
(inoltre, non sarebbe male poter indirizzare i verbi alla prima e/o
seconda persona del singolare: "prendo la mela" e/o "prendi la mela")
- ammettere frasi con doppio sostantivo/oggetto
(esempio: "lego la corda all'albero", "infilzo la mela con la
forchetta")
- possibilità di inserire più comandi (verbi) in una stessa frase;
(esempio: "prendi la mela, mangia la mela" [INVIO] "prendi la mela e
mangia la mela" [INVIO] "prendi la mela, mangia la mela e poi vai a
Nord" [INVIO] ecc.)
- il Parser ricorda il verbo o il sostantivo inserito in precedenza,
ovvero supporta i pronomi ecc.;
(esempio: "prendi la mela" [INVIO] "la pera" [INVIO] - siccome nel
secondo comando manca il verbo, il Parser dovrebbe provare a formulare
la frase recuperando il verbo della frase precedente, e quindi "la
pera" diventa "prendi la pera")
(altro esempio: "prendi la mela" [INVIO] "mangiala" [INVIO] - in
questo caso è presente il verbo "mangiare", ma non l'oggetto "mela",
che è possibile recuperare dalla frase precedente; oppure dal comando
precedente, come ad esempio - su una stessa riga - "prendi la mela e
mangiala" [INVIO])
(e ancora, se vuoi rendere le cose difficili: "lego la corda
all'albero e alla barca" diventa "lego la corda all'albero e lego la
corda alla barca" - in sostanza, in mancanza di verbo e del suo
complemento oggetto, richiesto in quanto il verbo è transitivo, il
Parser recupera verbo e sostantivo del comando precedente)
- riconoscimento degli attributi ai sostantivi/oggetti dell'avventura
(per esempio, gli aggettivi: "prendo la scatola rossa" dovrebbe
sortire lo stesso effetto di "prendo la scatola"; e ancora: "prendo la
chiave rossa e la/quella verde" - in sostanza il Parser ricollega
l'aggettivo "verde" al sostantivo "chiave" inserito in precedenza,
recuperando il verbo mancante, e dunque sostituisce "la/quella verde"
con "prendo la chiave verde")
(infine: un sostantivo può avere come attributo una parola retta, per
esempio, da un complemento di specificazione: "la scatola di Massimo";
e allora dovrebbe funzionare anche "prendo la scatola di Massimo")
- lavorare su sostantivi multipli
(per esempio: "prendo le chiavi" dovrebbe essere inteso dal Parser
come "prendo la chiave rossa e prendo la chiave verde" nel caso siano
presenti più oggetti denominati "chiave" - il cui plurale è appunto
"chiavi", indicante una quantità maggiore dell'unità - distinti da
differenti attributi: "rossa", "verde")
- gran finale: avventurarsi nella complessità terribile della sintassi
dei verbi e dei loro mutevoli significati
(per esempio: il verbo "prendere" ammette la costruzione "prendere +
complemento oggetto", ma anche "prendere + complemento oggetto +
preposizione semplice [con le sue varie "articolazioni"] DA + luogo di
origine", come: "prendo la mela dal cassetto" - in tal caso, in
aggiunta, occorrerebbe programmare delle routine capaci di gestire dei
"contenitori", rendendo possibili comandi come "mettere [oggetto] in
[luogo]", "togliere [oggetto] da [luogo]" e così via)
(altro esempio: un verbo può acquisire significati differenti a
seconda della costruzione impiegata - "infilo/metto il maglione/la
sciarpa nel cassetto" sta ad indicare che il verbo ha qui il
significato di inserire un oggetto dentro un contenitore ("cassetto");
diversamente, la costruzione "infilo/metto + capo di vestiario" (nella
categoria ci va anche la parola "anello") diventa "INDOSSO capo di
vestiario" (in questo caso, comunque, il "contenitore" dove "metto
qualcosa" è la persona)
Come vedi, gli sviluppi possibili sono molteplici - il Parser di
un'avventura altro non è che un piccolo, grande, esperimento di
"intelligenza artificiale" :)
Ipotesi (allettante) di fanta-Parser (suggeritami da Galandil il
Bardo, con il quale ne discutevo via mail): una volta costituito un
Parser del genere per la lingua italiana, sarebbe curioso provare a
sperimentare cosa accade a (e che sensazione dà) impartire comandi
vocali al computer, nell'ambito di una avventura testuale o di un
libro-gioco (vi sono alcuni pacchetti commerciali per VBasic che
consentono di implementare il riconoscimento vocale). Chissà... :}
m@ttia
P r o g e t t o   L a z z a r o
Avventure Testuali per C64
http://lazzaro.vd1.net
I  F   I T A L I A
Tutto sulle Avventure Testuali
http://ifitalia.vd1.net

Lascio volentieri la parola agli amanti di Inform. Non dire che non te la sei cercata ;-)
Eheh, già :}
Per me un Parser ideale dovrebbe riuscire a farci scordare la sua
presenza: ci rendiamo conto che stiamo dialogando con una macchina
imperfetta tutte le volte che essa risponde: "Non ho capito."


No avrei nulla da dire se non un incoraggiamento a Nello per il suo lavoro
di cui credo speriamo tutti di vedere quanto prima i sudati frutti
Vai cosģ!
Sauron

 imperfetta tutte le volte che essa risponde: "Non ho capito."
Mmm...che guarda caso è anche la risposta data da un sacco di lama...che in
realtà siano nulla'ltro che parser malriusciti?
Bah!
Sauron

ti cito tra i Credits...!!! :-)
Non c'e' una licenza allegata al MB, scusa? La risposta non l'hai li? 
-- 
The Hitman - 
http://members.xoom.it/hitman/
e-posta: 
rsal...@studenti.unina.it
 - Fan #2 di Mexico '86 
Anima gemellata di Arianna aka Jordie / Druido della BUBBLE
Linux-preacher vagante in it.*

 Si'.
Denghiù!


E' il mio sogno!
Del resto già 7 anni fa riuscivo col Workbench dell'Amiga a far riconoscere
i comandi vocali, ed oggi esistono numerosi programmi di dettatura per Word
(anche se necessitano di una lunga fase di assestamento).
Mi auguro che in un paio d'anni (quando ogni pc avrà il suo bel processore a
1,5ghz) potremmo usare un winfrotz con riconoscimento vocale e magari con
sintetizzatore... pensate che bello: si potrebbe giocare ad occhi chiusi,
sdraiati sul letto!
Ciao

sdraiati sul letto!
Le possibilità che mi vengono in mente così sul momento sono tante,
fra l'avveniristico esaltante e il macchinoso improbabile :)
La possibilità di impartire comandi via voce comunque mi sembra
interessante, o per lo meno divertente: il computer potrebbe
continuare a visualizzare il testo della descrizione delle locazioni,
tentando per chi la preferisce una lettura "robotica" del medesimo, ma
riconoscere comandi vocali e leggere le risposte ai tentativi
dell'utente di progredire nel gioco.
Penso che si andrebbe incontro a degli inconvenienti, e anche a un
problema di "adattamento" iniziale; ad ogni modo, si tratta pur sempre
di "qualcosa in più" con il quale gingillarsi, sperimentando il mezzo,
o in generale di "un passo avanti" - in quale direzione, chi lo sa. :)


 o in generale di "un passo avanti" - in quale direzione, chi lo sa. :)
Se hai presente una seduta di gioco di ruolo con master in carne ed ossa
(penso che sia una cosa familiare a tutti) penso che tu possa focalizzare
quello che intendo: in fondo una a.t. ha molto a che spartire con una seduta
di gdr. Pensa che brutto dover comunicare col master esclusivamente
attraverso messaggi scritti! Ma questo è esattamente ciò che succede ogni
volta che ci sediamo davanti al computer con una at. Di conseguenza penso
che il giorno che il riconoscimento vocale sarà implementato in maniera
convincente guarderemo alla tastiera con disgusto!
Non ci resta che aspettare!
In fondo penso che molto presto qualcuno proporrà il gioco di ruolo per
computer "come quello reale", cioè dove c'è un master a cui parlare, ma
questi sarà il computer!!
Ciao

 questi sarà il computer!!
che al massimo parlerà, ma quanto a prevedere quello che fanno quei pazzi dei
giocatori... la vedo dura... una sessione di Runequest, altro che test di
Turing!  :)
semmai si potrà usare il PC come mezzo per interfacciare master e giocatori
umani. Leggo che VAMPIRE prevederà questa modalità di gioco multiplayer, ma
parlarne sarebbe OT, ergo saluto (ti direi di scrivermi, se ti interessa, ma in
realtà non ne so di più neanch'io, per ora).
ciao
S


Concordo con te: credo che tra parlare al pc e continuare a scrivere
facendo i soliti errori di battitura, preferisco il secondo...non per
masochismo, ma perché anche come interfaccia ricorda un libro... :)
--
=^= ATRUS SHAO-LONG =^=
***
"A good traveller has no fixed plans
and is not intent on arriving."
***
http://switch.to/haven/

 masochismo, ma perché anche come interfaccia ricorda un libro... :)
Capisco bene quello che intendete, soprattutto concordo che impartire ordini
al computer con la voce ORA COME ORA fa sentire quantomeno a disagio.
Tuttavia resto della mia idea anche perché i programmi si evolveranno in
altre inattese direzioni e credo che molto presto dimenticheremo che un
tempo col mouse tagliavamo e incollavamo... che altro dire? Vedremo!
Ciao