|
|
 |
|
 |
Foto sfondi vari temi |
 |
Foto sfondi Italia |
 |
Foto sfondi Europa |
 |
Foto sfondi Mondo |
|
Sei
qui:
Home
>
Lo stato precedente |
|
Durante i collaudi emerse un serio problema: in certe
condizioni il codice di una pagina poteva accidentalmente
essere rieseguito, ad esempio aumentando nuovamente i
punti se la pagina conteneva un'istruzione del tipo: |
v.punti += 15 |
|
Ciò accadeva ad esempio nel caso di un salvataggio della
situazione: la pagina corrente era infatti già stata
presentata, e quindi le variabili erano state cambiate
di conseguenza; al ripristino doveva però essere mostrata
nuovamente, per cui la sua funzione era eseguita una seconda
volta, con i possibili effetti collaterali indesiderati di
cui sopra. |
|
Per
evitare questo problema, la funzione vai() salva
l'intero stato nella variabile statoPrecedente
prima di mostrare una pagina, in modo da conservare la
situazione com'era prima che la pagina fosse
presentata. Salvando questa situazione precedente anziché
quella attuale, il ridisegno della pagina al momento del
ripristino rimetterà le cose esattamente come stavano.
|
|
La funzione ridisegna() fa uso appunto dello
statoPrecedente per mostrare una pagina senza
eseguirne il codice; in realtà essa fa un passo indietro
(usa lo stato prima che la pagina fosse disegnata) e uno
avanti (disegna la pagina): l'effetto è quello di non
alterare né i valori delle variabili né quello degli
eventuali tiri di dado. |
|
Dato che la funzione mostra(), a differenza della
vai(), non salva lo stato precedente, è sempre
possibile mostrare delle pagine temporanee e poi
ridisegnare la pagina corrente usando appunto
ridisegna() senza rischiare alcun effetto collaterale,
purché ovviamente le stesse pagine temporanee non abbiano
cambiato il valore di qualche variabile di gioco. |
| |