Allora, vediamo.
Questo ? il primo abbozzo del Laboratorio, un posto in cui gli utenti possono lavorare su piccolli script proposti dall'insegnante di turno e in generale fare esercizio. Era un po' che pensavo di aprirlo ma mi mancava un argomento da cui partire: vista l'assenza, almeno per ora, di una lezione che spieghi l'utilizzo degli Array, proprio questi saranno il nostro primo argomento!
Il Grado 1 sta ad indicare il livello che bisogna avere per partecipare, poich? questo ? un servizio esclusivo per gli Studenti del Campus.
Laboratorio di RGSS - Array e Ciclo for
Ora cercher? di darvi una breve infarinatura dei concetti di base per poter metterci subito al lavoro.
Concetti di base
"Un array (o matrice) ? un gruppo di locazioni di memoria che hanno lo stesso nome e si distinguono le une dalle altre attraverso un indice" questa ? la sua definizione.
Ma andiamo ad analizzarne il significato: considerando che le variabili sono etichette associate a locazioni di memoria, si capisce che gli array in pratica sono un insieme di variabili con lo stesso nome.
Per poterle distinguere l'una dall'altra si utilizza un indice che viene inserito all'interno di due parentesi quadre subito dopo il nome. L'indice parte da 0 e va aumentando.
Vediamo questo esempio:
@array[0] = 10
Che cosa abbiamo fatto? @array ? un array, e abbiamo inserito il valore 10 nella suo primo elemento. Ogni elemento funziona esattamente come una qualunque variabile.
Quindi:
@array[0] @array[1] @array[2]
sono tutte considerabili come variabili differenti accomunate dallo stesso nome.
Probabilmente vi starete chiedendo perch? bisogna utilizzarli se funzionano esattamente come le variabili: ora non ? chiaro perch? abbiamo pochi elementi, ma immaginate di avvere un array con migliaia di elementi, la comodit? di poterli richiamare semplicemente tramite un indice ? enorme!
Per creare un array ci sono diversi modi:
@array = [] @array = Array.new
Questi creano un array generico, insomma non sappiamo qual ? il numero di elementi e cosa contengono.
Possiamo invece scrivere:
@array = [10, 15, 20]
per ottenere un array di tre elementi che contengono rispettivamente i valori 10, 15 e 20.
Continuando sulla falsariga di quest'ultimo esempio, immaginiamo di voler stampare il contenuto dei tre elementi dell'array.
print @array[0] print @array[1] print @array[2]
Come vedete l'indice parte sempre da 0 e non da 1, quindi se volete richiamare il secondo elemento dell'array dovete mettere un 2 tra le quadre.
Ora pensate che ci sono comandi che permettono di fare la stessa azione 'n' volte: capirete che potrete in poche righe applicare un comando a centinaia di elementi di un array.
Uno di questi comandi, il pi? comodo per questo utilizzo, ? il for.
@array = [] for i in 0..3 @array[i] = 10 * i end
Analizziamo questo pezzettino di codice: il for ? un ciclo che ripete l'azione contenuta tra for ed end e ad ogni giro aumenta la variabile i di 1, variabile che si pu? utilizzare per qualunque operazione. Questo lo fa partendo dal primo numero dopo l'in fino al numero dopo i puntini: in questo caso quindi parte da 0 e va fino a 3.
ATTENZIONE: non lasciatevi ingannare dallo zero, il ciclo viene ripetuto 4 volte e non 3 come sembrerebbe a prima vista; infatti i valori di i ad ogni giro saranno 0, 1, 2 e 3 quindi il ciclo far? 4 giri.
In questo caso ? possibile fare la stessa operazione senza utilizzare for:
@array = [] @array[0] = 10 * 0 @array[1] = 10 * 1 @array[2] = 10 * 2 @array[3] = 10 * 3
In questo caso gli elementi erano solo quattro, ma se per esempio fosse stato for i in 0.. 2700 evidentemente sarebbe stato impossibile farlo senza l'utilizzo degli array e di for.
Un po' d'esercizio
Invito chi gi? conosceva l'argomento ad evitare di partecipare, per dare spazio a chi ha pi? bisogno di aiuto. Col passare del tempo baster? controllare il Grado ma per ora conto sul vostro buonsenso. ;P
Ora proviamo a fare qualcosa, cominciando da qualcosa di semplice:
Create 5 diversi array ognuno con un nome di un attributo: Forza, Destrezza, Agilita(non metteteci l'accento che non lo accetta), Intelligenza e Costituzione.
Ovviamente cercate nel limite del possibile di fare da soli, altrimenti ? tempo perso. ^^