Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [PAPAGALO] update 28/12

La riscrittura del codice di PAPAGALO procede...
Ultima aggiunta di rilievo: gestione del wildcard (*), sia per i verbi 
che per gli oggetti presenti nella "location" corrente (oltre alle 
direzioni cardinali, comandi "meta", ecc.).
Perche' ho aggiunto questa possibilita' al buon PAPAGALO? Perche' 
scrivere cose come "x pippistrello" o "x stenograph" (anziche' "x pipp*" 
e "x sten*") e' terribilmente faticoso :) (specie con un cellulare).
Ecco un esempio (da *Avventura*):
---------
Dentro l'Edificio
Sei dentro un edificio, un pozzo per estrarre l'acqua di una grande 
sorgente.
Ci sono delle chiavi qui sul pavimento.
C'è del cibo gustoso qui.
C'è una lampada lucida di ottone qui vicino.
C'è una bottiglia vuota.
 >prendi la bott*. esam* la lamp*. racc* le chia*
Presa.
È una lampada lucida di ottone. Adesso non è accesa.
Prese.
---------
NOTA:
Il correttore esegue una serie di verifiche per evitare espressioni 
scorrette, che vengono ripulite (es. "pre**ndi la **la*", ecc.)
LIMITI:
- prima dell'asterisco, almeno X caratteri (4 di default -- valore 
modificabile, anche se meno di 4 sono pochini...)
- nei caratteri prima dell'asterisco, non sono ammessi errori (es. 
"preen*" non sara' riconosciuto come "prendi")
- per motivi di praticita'/velocita', non vengono operate (inutili, a 
mio parere) "disambiguazioni".
(es: se in una stanza ho "pallone" e "pallina" e scrivo "x pall*", sara' 
scelto uno dei due oggetti; per distinguerli, e' sufficiente aggiungere 
un carattere, es. "x pallo*" oppure "x palli*")
FRA
P.S.
Avendo reso PAPAGALO compatibile con le note estensioni scenic.h e 
pname.h, il riconoscimento via wildcard funziona anche con gli oggetti 
definiti attraverso queste ultime; ad esempio, da *La pietra della Luna* 
(con il DEBUG attivato):
---------
In questa notte le case del villaggio hanno un'atmosfera quasi 
spettrale. La piazza principale e le vie adiacenti sono immerse nella 
totale oscurità, e nemmeno la minima luce filtra dalle finestre, tanto 
da far credere che il villaggio sia disabitato.
 >x fines*
----------------------------------------------------------
PAPAGALO (v. 0.8 beta)
(c) 2005-2006 by Francesco Sircana
Provo a ripulire il buffer.
La frase inserita contiene 1 wildcard.
* * *
Parola #1/2 |x| = verbo
La parola è stata trovata nel dizionario.
* * *
Parola #2/2 |fines*| (con wildcard)
La parola non è presente nel dizionario.
Ora provo a correggere la parola.
Cerco tra gli oggetti visibili.
Oggetti probabili: fioretto, finestre.
La parola corrisponde a un oggetto presente: finestre [scenic.h].
----------------------------------------------------------
Non una luce, non un rumore...
---------

 La riscrittura del codice di PAPAGALO procede...
vogliamo la release...
:)

 vogliamo la release...
presto :)
ogni momento sorgono nuovi problemi...
es: ho portato a 3 i caratteri minimi necessari per l'inserimento di un 
wildcard (ovvero: "pal*" = "palla")... problema:
"esamina il pal*" (dovrebbe rispondere "palazzo"...)
"esamina la pal*" (questa invece e' una "palla"!)
argh
FRA

 "esamina la pal*" (questa invece e' una "palla"!)
Ho risolto... adesso funziona. :)
E' possibile scrivere, ad esempio:
"esamina pen*" (sceglie "pennarelli" o "pentola")
"esamina la pen*" (sceglie "pentola")
"esamina i pen*" (sceglie "pennarelli")
Funziona anche per tutte le altre tipologie di correzione di errore.
Es: "ettamina il pallajz!o" (scarta subito "palla" e capisce "palazzo")
Nel senso che "palla" non viene processata *a priori*, perche' e' una 
parola definita come di genere femminile.
Perdonate lo SPAM di oggi. ;]
FRA

 Es: "ettamina il pallajz!o" (scarta subito "palla" e capisce "palazzo")
e ettamia l pallaodasj?
con l che potrebbe essere il o la?
a proposito di genere, ma poi l'hai trovato quel famoso codice?
ciao
marco

 a proposito di genere, ma poi l'hai trovato quel famoso codice?
Si'! Ti mando quel che ho messo insieme (manca qualcosa!?) -- e' tutto 
da rifare e disordinato, cmq penso che mi ci rimettero' su, mi e' 
sembrata interessante la cosa... in sostanza consentiva di definire 
oggetti nel modo seguente (tratto da un esempio che avevo provato):
-------------------------
Object nuvole
with
name_ms 'nembo' 'nuvolone' 'cirro',
short_ms "soffice nuvolone" "bianco nembo",
name_fs 'nuvola' 'nube' 'nuvolona',
short_fs "bianca nuvola" "soffice nuvola" "nuvola",
name_mp 'nembi' 'cirri' 'spruzzi',
short_mp "cielo" "cielo azzurro",
name_fp 'nuvole' 'nubi',
short_fp "soffici nuvole" "nuvole" "candide nuvole" "graziose nubi",
name_d fs,
name_a 'candida' 'candide' 'graziosa' 'graziose' 'bianca' 'bianche' 
'sporadica' 'sporadiche' 'soffice' 'soffici' 'eterea' 'eteree' 'di' 
'del' 'cielo' 'panna' 'montata' 'soffice' 'soffici' 'cielo' 'belle' 
'bellissima' 'bella' 'bellissima'
-------------------------
In sostanza, "name_ms" e' il nome "maschile singolare", ecc., con le 
relative descrizioni "short" (variabili); in "name_d" c'e' il default 
(fs = "femminile singolare"), in "name_a" gli aggettivi. Ad occhio e 
croce (il codice e' di un anno fa e passa), credo che la routine 
servisse non solo a definire con maggiore correttezza i "name" di un 
oggetto, ma anche a gestire gli aggettivi (il codice e' un 
rimaneggamento del noto adname.h, che appunto lavora sugli aggettivi) e 
a settare i pronomi di conseguenza, dopo l'uso di un "name".
FRA