Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [Inform] conversioni?

Ho un problemino con le conversioni da stringa a numeri e viceversa.
Ad esempio:
un_array -> 0 = '1';
un_array -> 1 = '0';
x = 10;
come faccio a testare che il contenuto di array č uguale x ?
Oppure anche
x = 10;
y = "10";
z = '10';
Ho capito la differenza ma come faccio a confrontarli ?
Grazie.
Dem

 Ho capito la differenza ma come faccio a confrontarli ?
Non credo si possa fare... ma se mi fai un esempio pratico di 
situazione in cui ti serve una cosa simile ti posso magari trovare un 
modo per aggirare il problema :-)
-- 
Ciao ciao,
         gws
per rispondere in e-mail togli 'zot' dall'indirizzo


Il problema è questo: ad un certo punto del gioco genero un numero con
random,
e lo metto in una proprietà di un oggetto. In seguito devo riuscire a capire
se il
giocatore con un verbo del tipo "topic"
(es.:
Verb 'digita' * topic 'su' noun -> Digit;
per digitare qualcosa su un computer...)
digita quello stesso numero. E non riesco a farlo. Basterebbe una semplice
routine
per passare da numeri a stringe o qualcosa del genere ma (char) e (string)
sono solo
routine di stampa...
Grazie ancora
    Dem

 Verb 'digita' * topic 'su' noun -> Digit;
qui scrivi 'special' risolvi il problema completamente. Guarda il DM, poi ne riparliamo...
ciao
S
PS una volta ho scritto "il DM lo sa" in mail a uno e lui ha chiesto delucidazioni al suo master di D&D...

 PS una volta ho scritto "il DM lo sa" in mail a uno e lui ha chiesto delucidazioni al suo master di D&D...
davvero??? eheheh..
bai
tommi
--
Tommaso Caldarola
R&D - Team E/2
Centro Ricerche ESA Software Bari  
http://www.cresb.it
S.P. per Casamassima, Km 3     Tel 0804670560
70100 Valenzano (Ba), Italy    Fax 0804670583
mailto:
t.cal...@cresb.it
-----------------------------------------------------------------------
Personal Web Site:    
http://www.angelfire.com/sk/tommaso
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
La libertà non sta nello scegliere
tra il bianco e il nero, ma nel sottrarsi
a questo obbligo.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Me lo sono ripassato un po' e forse è meglio fare una cosa del tipo
Verb 'digita' * number 'su' noun -> DigitNum
                    * topic 'su' noun -> Digit;
in modo da separare i casi: se digito un numero lo memorizzo già come
numero, altrimenti lo vado a mettere in topic e lo tratto come un caso
normale.
Oppure faccio direttamente num=TryNumber(2) (visto che il numero digitato è
praticamente sempre la seconda parola) e il numero me lo ritrovo in num.
Dopo queste illuminazioni ancora non mi funzionava perchè il mio numero
doveva essere necessariamente a sei cifre (troppe per i 16 bit). Quindi ho
generato il numero casuale che mi interessava in due volte, tipo
x=random(999);
y=random(999);
Poi però non potevo più riconoscerlo con il verbo 'DigitNum' e quindi ho
lasciato solo 'Digit', ma ancora TryNumber restituiva 10000, che è il numero
massimo consentito. Alla fine mi sono definito la funzione ParseNumber che
entra in gioco quando la lunghezza della parola passata a TryNumber è
maggiore di cinque (io l'ho definita solo per le 6 cifre ma si può fare
anche per numeri più lunghi). ParseNumber divide il numero di 6 cifre in due
da 3, mette il primo pezzo in una variabile globale (il mio prof di info
storcerebbe il naso...) e poi fa ritornare il secondo pezzo. Alla fine più o
meno è così:
Global Aux_Num;
...
x=246;
y=135;
...
il giocatore scrive "Digita 246135 sulla tastiera"
...
num=TryNumber(2);
if (Aux_Num==x&&num==y) ...
E questo ha risolto i miei problemi. Comunque vale solo in fase di
"acquisizione", se ho già in memoria una cosa del tipo:
x = 10;
y = '10';
l'unica è fare come hai detto tu e convertire lettera per lettera (che poi è
la stessa cosa che fanno TryNumber e ParseNumber).
grazie a tutti
    Dem