logo windoweb



Sei qui:Home > Problemi con la riesecuzione



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


Programmazione JavaScript CAP 5 1 Testo variabile 5 Aggiornare una pagina
2 Testo condizionale 6 Problemi con la riesecuzione
3 Alternative 7 Casualità e dado
4 Istruzioni nelle scelte

Problemi con la riesecuzione

Quando una pagina viene riscritta per effetto della funzione aggiorna, è importante ricordare che la funzione della pagina viene nuovamente eseguita; ciò può comportare degli inconvenienti, come in questo caso:
function Anello() {
titolo("Scoperta")
testo("Complimenti, hai trovato il quarto dei 7 anelli perduti!")
v.punti += 20; // guadagna 20 punti --- attenzione! ---
...
}
In questo caso c'è un potenziale errore nell'istruzione:
v.punti += 20 //(v.punti = v.punti + 20)
Se infatti una delle scelte contenesse l'istruzione aggiorna(), alla variabile v.punti verrebbe aggiunto 20 ogni volta che la pagina fosse riscritta, il che non è ovviamente il comportamento desiderato.

A questo problema ci sono varie soluzioni, la più semplice delle quali consiste nell'assegnare i punti nella scelta che porta a questa pagina, così:
scelta("Decidi di aprire il piccolo scrigno", "v.punti += 20; vai(Anello)")
In questo caso la pagina Anello() non contiene alcuna istruzione che aumenta i punti, quindi può essere rieseguita senza problemi. Una tecnica più complessa, utile in altre situazioni, è quella di usare una variabile per evitare di rieseguire delle istruzioni: if (! v.trovatoAnello) {
v.punti += 20
v.trovatoAnello = 1
}
Le istruzioni tra parentesi graffe verranno eseguite una sola volta, indipendentemente dal numero di riscritture della pagina, perché alla prima esecuzione la variabile v.trovatoAnello viene impostata a 1 e impedisce (per mezzo della if) una successiva riesecuzione delle stesse istruzioni.




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