Eccoci all'ultima lezione che spiega le basi dell'RGSS ^^
Vi ricordo che con queste lezioni non diventerete degli scripter,ma vi costruite delle basi su cui poter partire,e capirete anche,come funzionano gli script.
Bene.
In quest'ultima lezione,tratteremo l'argomento relativo ai cicli.
Cosa sono i cicli?
I cicli sono 'strutture' che consentono di ripetere lo stesso pezzo di codice più volte.
Cicli: loop
Iniziamo con una struttura fondamentale:il loop.
Il loop permette di creare un codice che verrà ripetuto di continuo.
Vediamo subito un esempio pratico:
Codice: Seleziona tuttovar = 1
loop do
print var
var += 1
end
Se utilizziamo questo codice,visualizzeremo una finestra con valori sempre diversi.
Ovviamente,possiamo anche rompere il ciclo in qualsiasi momento:
Codice: Seleziona tuttovar = 1
loop do
print var
if var == 10
break
else
var += 1
end
end
Fondamentalmente,questo codice valuterà ogni volta,se la variabile ha il valore 10.
Se lo fa,richiama poi il comando 'break'(pausa),che interromperà il ciclo.
In caso contrario,aggiunge un valore di 1 alla varibile.
Un'altra parola chiave è "next",che serve per interrompere il ciclo senza fermarlo del tutto. Praticamente il giro attuale si interrompe e il ciclo riprende dal giro successivo.
Per esempio qui faremo saltare il ciclo in cui var è 4 facendolo arrivare direttamente a 5:
Codice: Seleziona tuttovar = 1
loop do
print var
if var == 10
break
else
if var == 3
var += 2
next
end
var += 1
end
end
In questo modo tutto quello che viene dopo "next" non viene eseguito e il ciclo continua normalmente col seguito.
P.S.: Avremmo potuto scrivere anche var += 1 al posto del 2 ed evitare il next, tanto il valore arriva lo stesso a 5.
Era però utile a livello di esempio fare in questo modo.
Possiamo prendere esempio anche qui,dai cicli di rpgmaker ^^
Cicli: while
Forse una delle strutture che mi piace di più
Prendete l'esempio del codice messo in loop,siamo in grado di ridurlo in questo modo:
Codice: Seleziona tuttovar = 1
while var <= 10
print var
var += 1
end
Leggiamo quello che abbiamo fatto con il mini codice:
-mentre il valore della variabile è inferiore o uguale a 10,mostra il valore della variabile e aggiungi 1 al suo valore.
Cicli: until
Questo ciclo,potremmo definirlo come 'fino a..'.
Prendiamo l'esempio del codice postato su while,ma scriviamolo con until:
Codice: Seleziona tuttovar = 1
until var == 11
print var
var += 1
end
Possiamo notare subito una differenza:il numero che ho utilizzato,è l'11.
Voi vi chiederete,perchè?
Per evitare possibili confusioni,possiamo dire che "until" è il contrario di "while" e,cioè,che mentre "while" continua il ciclo se la condizione ("var <= 10" in questo caso) risulta vera,"until" si ferma non appena la condizione è vera,quindi continua il ciclo mentre è falsa,quindi quando il valore arriverà a 11,il codice dentro il ciclo non verrà più eseguito,in quanto la condizione è vera(discorso contort?XD)
Se avessimo messo "var <= 10",sarebbe stata vera fin dall'inizio e il ciclo non sarebbe proprio partito.
Cicli: for
Il ciclo for, a differenza degli altri, viene eseguito per un numero di volte prestabilito, cioè definito come numero e non come condizione. Faccio un esempio:
Codice: Seleziona tuttofor var in 1..10
print var
end
Vediamo di spiegare tutto in dettaglio.
"1..10" è il numero di volte che deve essere eseguito il codice,10 volte in questo caso.
"var" è una variabile che viene creata e gestita dal ciclo for.
Vediamo infatti che,all'interno del ciclo,viene usata senza essere stata prima creata e che manca il codice per farla aumentare di valore;se eseguiamo il codice, però, darà gli stessi risultati che hanno dato gli altri cicli.
Ad ogni giro, quindi, il ciclo for assegna alla variabile "var" il numero del giro,in questo caso specifico (vedremo gli altri casi).
Il valore di "var" sarà perciò prima 1 poi 2 poi 3 fino ad arrivare a 10.
Potevamo anche mettere altri numeri, ad esempio "5..20" e, sarebbe partita da 5 fino ad arrivare a 20. Possiamo usare anche numeri negativi, ma l'importante è che il secondo deve essere maggiore del primo.
Da notare che il 10 dell'esempio viene eseguito. Se mettiamo tre puntini anzichè due (potete vedere molti esempi negli script), l'ultimo numero non viene eseguito e il ciclo si ferma a 9. Questa cosa è utile soprattutto in casi del genere:
Codice: Seleziona tuttoarray = ["1º Valore", "2º Valore", "3º Valore", "4º Valore"]
for i in 0..array.size - 1
print array[i]
end
"array.size" restituisce 4, cioè il numero di elementi dentro l'array. Noi sappiamo però che gli elementi degli array vanno dal numero 0 al numero 3 e quindi il 4 che ci viene restituito deve essere scalato di 1. Possiamo usare i tre puntini in questo modo:
Codice: Seleziona tuttoarray = ["1º Valore", "2º Valore", "3º Valore", "4º Valore"]
for i in 0...array.size
print array[i]
end
e ottenere lo stesso risultato.
In questo esempio abbiamo scritto "array" per far apparire la stringa contenuta. Con il ciclo for, però, possiamo usare un altro metodo:
Codice: Seleziona tuttoarray = ["1º Valore", "2º Valore", "3º Valore", "4º Valore"]
for valore in array
print valore
end
così come:
Codice: Seleziona tuttofor valore in ["1º Valore", "2º Valore", "3º Valore", "4º Valore"]
print valore
end
La variabile "valore",anzichè il numero,conterrà in questo caso direttamente il valore di ogni elemento dell'array,che può essere passato come variabile (1° caso) o specificato direttamente (2° caso).
Bene,con questa lezione abbiamo finite di spiegare le basi per introdurvi nel mondo dell'RGSS

Vi ricordo che non è molto difficile imparare le basi,ma bisogna avere pazienza e voglia ^^
Vi lascio all'esercizio(che si son fatti sempre più difficili),sull'argomento
Esercizio 6:
- Dato l'array:
Codice: Seleziona tuttoa = [4, 6, 7, 4, 7, 2]
creare un ciclo for che dimezzi i valori e li rimetta nell'array.
- Creare un ciclo a scelta le cui condizioni porteranno a non farlo eseguire (cioè scriverlo correttamente a livello di sintassi ma che anziche ciclare per un determinato numero di volte, dovrà ciclare esattamente 0 volte)
La lezione è stata scritta interamente da Ally e mikb89,pertanto,ne è vietata la copia senza l'autorizzazione da parte degli autori.
| Copyright © [RGSS/RGSS2]Cicli 2011. All Rights Reserved. |









