Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Oggetti identici

Mi scuso per le mie domande apparentemente tediose...
Ma come ci si comporta in caso di due o piu' oggetti identici?
Con oggetto abbastanza comune come uno zaino,  presente sia nell'inventario 
del personaggio che nella location come dovrebbe interpretare il parser un 
comando come "Apri zaino"? Nel caso uno dei due in base alla posizione abbia 
la priorita' sull'altro, come si potrebbe far riferimento al secondo?
Grazie,
Roberto 

Arfaiten ha scritto:

Secondo me, salvo librerie e/o accorgimenti certamente più evoluti, 
l'unica cosa semplice da farsi è verificare la locazione dell'oggetto e 
desumere da questa a quale istanza di oggetto ci si riferisce.
Oltrettutto è proprio l'istanza che, se inform funziona come mi aspetto, 
che risponde e quindi il riferimento all'oggetto giusto già lo hai.
In sostanza, se hai due zaini, A e B, a seconda di come implementi le 
azioni apri (before) per i due oggetti e a seconda della locazione in 
cui si trovano (quindi prevederei anche di gestire azioni come lascia o 
prendi che potrebbero impostare dei flag appositi per l'ulteriore 
riconoscimento) scegli la risposta e l'azione.
Poi, ripeto, esistono librerie molto meno artigianali ma, non 
conoscendole, non so dirti niente a riguardo.
Spero di essere stato utile e chiaro.
pg


wrote:

Solitamente in Inform si disambigua il termine o con la libreria
pname, o con altri termini che caratterizzano i due oggetti; es.: lo
zaino bianco, lo zaino di tela. Indicando "Apri zaino" il sistema
chiede "quale, lo Zaino Bianco o lo Zaino di tela?" e il giocatore
precisa dicendo "bianco" o "tela".
fraenrico


(premettiamo anzitutto che l'idea di base dovrebbe essere sempre quella 
di facilitare la vita al giocatore, il problema e' come...)
A livello di singolo gioco o a livello di parser/librerie/world model?
Nel primo caso, anzitutto ci sarebbe da chiedersi se due o piu' zaini 
sono veramente necessari (o se magari uno non sia sostituibile da un 
borsello (in vero budello, e non in falso bue) ).
Se proprio il gioco ha bisogno di piu' oggetti simili ma non identici, 
anzitutto e' bene che siano in qualche modo distinguibili a livello di 
nome ('zaino rosso'/'zaino verde' o 'mio zaino'/'zaino di gino'). In 
questo modo al limite restera' la possibilita' della classica domanda 
disambiguante ("cosa intendi, lo zaino rosso o lo zaino verde?").
Inoltre il gioco puo' comportarsi in modo piu' intelligente, ad esempio 
dando la precedenza ad oggetti in certe condizioni a seconda dell'azione 
intrapresa: (esempio: precedenza agli oggetti in inventario a meno che 
non si stia raccogliendo o spostando qualcosa, nel qual caso la 
precedenza va agli oggetti _non_ in inventario).
Oppure ancora, il gioco puo' comportarsi in modo da rendere inutile la 
distinzione tra oggetti simili (esempio vero: in Anchorhead ogni chiave 
trovata dalla protagonista viene messa in un portachiavi; quando si deve 
aprire una porta, il gioco controlla se la chiave giusta e' nel 
portachiavi e, se e' cosi', apre la porta).
A livello di sistema generalmente si dovrebbe scegliere un comportamento 
base (domanda disambiguante del parser, gestione intelligente, una via 
di mezzo tra queste due o altro), ma ovviamente si dovrebbe lasciare la 
possibilita' di rettificare questo comportamento a livello di singolo 
gioco (piu' o meno come fa' Inform con l'entry point ChooseObject - ma 
possibilmente meglio).
bye
-- 
Paolo Lucchesi - pluc...@NOSPAMtin.it

Purtroppo io ragiono ancora in MUDdesco... :)
dove ci sono piu' oggetti con lo stesso modello, identici in tutto e per 
tutto.
In un mud per prendere o aprire un oggetto specifico quando ce ne sono piu' 
identici si scrive prendi 2.zaino per indicare che ci si deve riferire al 
secondo zaino, cosa molto pratica, ma poco elegante e che potrebbe far 
venire l'orticaria a piu' di un "purista" delle AT...
Mi interessava sapere se esisteva una soluzione alternativa.
Grazie per tutte le risposte,
Roberto