logo windoweb



Sei qui:Home > Salvataggio e ripristino



I D R A
Ipertesto Dinamico per Racconti d'Avventura

Manuale dell'autore
rev 1.0, © 2000 Enrico Colombini
qui puoi scaricare IDRA con il manuale
qui puoi visitare il sito ufficiale dell'autore Enrico Colombini con esempi e giochi scaricabili

OFFERTE AMAZON


Come funziona Idra Appendice B 1 L'idea di Idra 5 Lo stato precedente
2 Perché JavaScript? 6 Il debugger
3 Struttura di Idra 7 Possibili migliorie
4 Salvataggio e ripristino

Salvataggio e ripristino

La situazione da registrare su disco consiste nei valori di tutte le variabili di gioco, ossia le proprietà della variabile v, più naturalmente la pagina corrente e lo stato del generatore di numeri pseudocasuali; quest'ultimo dato è necessario per evitare che la situazione possa cambiare salvando e ricaricando il gioco (addirittura la pagina potrebbe presentare scelte diverse, se esse dipendessero da un numero estratto a caso).

Per rendere ripristinabile lo stato del generatore pseudocasuale, ho dovuto sostituire quello di JavaScript (Math.random()) con la funzione caso() che impiega il semplice algoritmo di molti sistemi Unix; essa è a sua volta chiamata dalla dado() messa a disposizione dell'autore.
La creaStringaStato() ha il compito di 'impacchettare' tutte le informazioni, incluso il nome della pagina corrente, in un'unica stringa che riassume lo stato corrente del racconto-gioco; eventuali stringhe contenute nelle variabili vengono messe tra virgolette, mentre le virgolette contenute nelle stringhe sono sostituite dalla sequenza \" per evitare interferenze. Il risultato è una stringa di questo tipo:
v.inv=1;v.lupi=16;v.capr=2;v.uova=0;v._qui_="P11";v._caso_=271568720
La funzione registraCookie() codifica ulteriormente la stringa con la escape() per evitare la presenza di caratteri non ammessi, come ad esempio i segni di interpunzione; vi aggiunge poi il nome e la data di scadenza e salva il tutto in un cookie, se le circostanze lo permettono. Il cookie conterrà una stringa del genere:
v.inv%3D0%3Bv.lupi%3D0%3Bv.capr%3D2%3Bv.uova%3D0%3Bv._qui_%3D%22P11%22%3Bv._caso_%3D271568720%3B
Vi è qui una certa inefficienza dovuta alla codifica, che potrebbe eliminata con un'elaborazione preliminare per togliere i v. e i simboli (= ;); questa organizzazione della stringa ha comunque il vantaggio di poter ripristinare lo stato del sistema con una semplice eval(), come fa appunto la ripristinaStato().

Infine, nel caso di problemi con i cookie (che possono ad esempio essere disabilitati per scelta del lettore) Idra salva lo stato nella variabile situazioneSalvata: ciò non consente di conservarlo se si esce dal browser, ma lo si può comunque recuperare nell'ambito della stessa sessione, cioè se non si è usciti dal racconto-gioco. È ad esempio possibile salvare prima di fare una scelta rischiosa, per poi riprendere dallo stesso punto nel caso che sia andata male.




CLICCA QUI ... PER CONSULTARE LA MAPPA SATELLITARE DEL GLOBO DI GOOGLE


Segnala un sito redazione@windoweb.it
© 1999-2014
Tutti i diritti riservati
Invia le tue foto o i documenti che vuoi pubblicare