Non sei registrato? Registrati subito cliccando QUI! E utilizza tutte le funzionalita' del sito!

[RGSS/RGSS2]Array & Hashes

Guida ai corsi dell'RGSS/RGSS2.

[RGSS/RGSS2]Array & Hashes

Messaggioda Ally » 31/08/2009, 23:45

ImmagineClicca qui per ingrandire


Benvenuti nella terza lezione per apprendere l'RGSS/RGSS2 ^^
Dopo aver seguito le lezioni precedenti,oggi apprenderemo gli Array e gli Hash.
Devo dire che non sono facili da capire,ma sono molto utili nella programmazione...
Gli Array e gli Hash,sono conosciuti come 'contenitori'...ma andiamo ad approfondire un pò di più la lezione dicendo cosa sono,capendone la funzione e che ruoli svolgono.

Cosa sono gli Array?
"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.
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.

ESEMPIO:
 Codice: Seleziona tutto
@array[0] = 22

Che cosa abbiamo fatto?
abbiamo inserito un valore(22) in un array inserendolo nel suo primo elemento...
Ogni elemento funziona esattamente come una qualunque variabile.
Altro esempio:
 Codice: Seleziona tutto
@array[0]
@array[1]
@array[2]
@array[3]
@array[4]

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 avere un array con migliaia di elementi, la comodità di poterli richiamare semplicemente tramite un indice è enorme!

Ora,immaginiamo di voler stampare il contenuto dei 5 array:
 Codice: Seleziona tutto
print @array[0]
print @array[1]
print @array[2]
print @array[3]
print @array[4]


Ma perchè ho sottolineato dei 5 array e non ho detto 4 data che i numeri arrivano fino a 4?
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.

Gli Array però,possono essere anche bidimensionali e multidimensionali.
Per definire un array bidimensionalie,usiamo:
 Codice: Seleziona tutto
array = ["Valore 1", "Valore 2", "Valore 3"]

Vediamo anche qui come poter stampare gli array.
Nel primo caso:
 Codice: Seleziona tutto
array = ["Valore 1", "Valore 2", "Valore 3"]
print array[0]

Abbiamo 'stampato' il primo elemento,che ha come valore il Valore 1...

Nel secondo caso:
 Codice: Seleziona tutto
array = [["Valore 1", "Valore 2"], ["Valore 3", "Valore 4"]]
print array[0][0]
print array[1][0]

Che cosa abbiamo fatto?
In questo caso bisogna definire il set in cui è posto l'elemento da visualizzare.
Nel primo print,abbiamo definito il primo set,scrivendo [0] e stampato il primo elemento che ha come valore il Valore1,con [0].
Stessa cosa per il secondo print...abbiamo definito il secondo set,scrivendo [1] e stampato il primo elemento di esso che come valore ha Valore 3,con [0].
Vi mostro un'immagine per capire che cosa intendo per 'set':
ImmagineClicca qui per ingrandire

Ora spiegheremo che cosa è un Hash.
Che cosa sono gli hash?
Gli hash,sono simile agli array,salvo che l'indicizzazione è fatto tramite chiavi arbitrarie di qualsiasi tipo.

Definiamo un hash
Per definire un hash,utilizziamo la chiave =>valore...Così:
 Codice: Seleziona tutto
hash = {1 => "Uno", 2 => "Due"}

Come gli array,possiamo definire una hash multidimensionale:
 Codice: Seleziona tutto
hash = {"numeri" => [1,2,3], "scritte" => ["Uno", "Due", "Tre"]}

Come potete vedere,fondamentalmente il concetto è quasi uguale agli array...

Accesso ai valori di un hash
In primo luogo,andiamo al nostro primo hash bidimensionale.
Anche qui,faccio degli esempi per far visualizzare i valori:
 Codice: Seleziona tutto
hash = {1 => "Uno", 2 => "Due"}
print hash[1]
print hash[2]

Che cosa è successo?
Prima è stato visualizzato sullo schermo il valore "Uno" e poi "Due",giusto?
Questo perchè la chiave 1,è collegata al valore "Uno",e la stessa cosa accade per la chiave 2...
Ecco una'ltro esempio:
 Codice: Seleziona tutto
hash = {"ally" => "Scripter", "dragon7" => "Gay"}
print hash["ally"]
print hash["dragon7"]

Il primo risultato è stato Scripter,e poi Gay.
Abbiamo fatto la stessa cosa,a differenza che in questo caso,le chiavi erano stringhe...

Ora,vediamo un hash multidimensionale:
 Codice: Seleziona tutto
hash = {"numeri" => [1,2,3], "scritte" => ["Uno", "Due", "Tre"]}
print hash["numeri"][1]
print hash["scritte"][3]

Che cosa è successo?
In primo luogo,abbiamo visualizzato il valore '2'(stessa regola dello 0 come negli array).
Poi,abbiamo visualizzato il valore "Tre"(il quarto valore,che negli array sarebbe 'Tre',non esiste nelle scritte)...
Spero di essermi spiegato bene,ma ricordo che per qualsiasi domanda,sono a vostra disposizione.
Rileggete con calma la lezione e non entrate nel panico...sembra difficile,ma una volta capito il funzionamento,è una stupidata :)

Esercizio 3
- Crea un array bidimensionale con 4 valori quasiasi,facendo poi visualizzare un valore qualsiasi contenuto in esso.
- Crea un array multidimensionale composto da due set e tre valori per set e fai visualizzare poi l'ultimo valore del secondo set.
- Crea un hash bidimensionale con due chiavi/valori,e fai visualizzare una delle due.
- Crea un hash multidimensionale con due set e fai visualizzare uno dei due.

Nella prossima lezione tratteremo:
  • Le operazioni

Copyright © [RGSS/RGSS2]Array & Hashes 2011. All Rights Reserved.
ImmagineClicca qui per ingrandire
Spoiler: mostra
Figlio Illegittimo n°001 della:
ImmagineClicca qui per ingrandire
Avatar utente
Ally
Fondatori
Fondatori
 
Messaggi: 5354
Iscritto il: 09/08/2009, 16:07
Località: Genova
Grazie dati: 127 volte
Grazie ricevuti: 121 volte
Ruolo: Scripter
Progetto/i VX: Essence
Tool Preferito: RM2k/2k3

Re: [RGSS/RGSS2]Array & Hashes

Messaggioda Petryx » 06/09/2009, 8:40

Elly scusami ma non ho capito bene gli has ho capito solo le parti del print(come spoecificare la cosa da far visualizzare) e basta :? :? :?

potresti spiegare con più semplicità :?: XD
ImmagineClicca qui per ingrandire


ImmagineClicca qui per ingrandire
ImmagineClicca qui per ingrandire ImmagineClicca qui per ingrandire
ImmagineClicca qui per ingrandire
Avatar utente
Petryx
Maker Viandante
Maker Viandante
 
Messaggi: 208
Iscritto il: 15/08/2009, 21:09
Grazie dati: 0 volte
Grazie ricevuti: 0 volte
Ruolo: Eventer

Re: [RGSS/RGSS2]Array & Hashes

Messaggioda Ally » 06/09/2009, 14:51

A breve posterò delle lezioni complementari dove farò degli esempi tramite script e spigherò per bene i loro funzionamenti...
Comunque,fondamentalmente,sono la stessa cosa,a parte che se fai visualizzare le scritte,il valore invece che partire da 0,parte da 1.
A breve la prossima lezione,e poi con queste quattro lezioni,farò delle lezioni supplementari per farvi capire meglio in script ;)
ImmagineClicca qui per ingrandire
Spoiler: mostra
Figlio Illegittimo n°001 della:
ImmagineClicca qui per ingrandire
Avatar utente
Ally
Fondatori
Fondatori
 
Messaggi: 5354
Iscritto il: 09/08/2009, 16:07
Località: Genova
Grazie dati: 127 volte
Grazie ricevuti: 121 volte
Ruolo: Scripter
Progetto/i VX: Essence
Tool Preferito: RM2k/2k3

Re: [RGSS/RGSS2]Array & Hashes

Messaggioda Petryx » 06/09/2009, 17:35

Ok grz elly intanto cerco di fare l'esercizzio :D
ImmagineClicca qui per ingrandire


ImmagineClicca qui per ingrandire
ImmagineClicca qui per ingrandire ImmagineClicca qui per ingrandire
ImmagineClicca qui per ingrandire
Avatar utente
Petryx
Maker Viandante
Maker Viandante
 
Messaggi: 208
Iscritto il: 15/08/2009, 21:09
Grazie dati: 0 volte
Grazie ricevuti: 0 volte
Ruolo: Eventer

Re: [RGSS/RGSS2]Array & Hashes

Messaggioda kekkorider » 06/09/2009, 19:24

se fai visualizzare le scritte,il valore invece che partire da 0,parte da 1

cioè?è solo in questo esempio che la chiave ha valore 1,o c'è qualcosa che mi è sfuggito?
Avatar utente
kekkorider
Amministratore
Amministratore
 
Messaggi: 396
Iscritto il: 12/08/2009, 13:59
Grazie dati: 4 volte
Grazie ricevuti: 1 volte
Ruolo: Eventer
Progetto/i 2k/2k3: Valya - Eden Divide
Progetto/i XP: Restricted - Project 15

Re: [RGSS/RGSS2]Array & Hashes

Messaggioda Ally » 07/09/2009, 0:18

Se tu fai apparire delle stringhe/scritte,invece che numeri,il valore non parte da 0,ma da 1...
ImmagineClicca qui per ingrandire
Spoiler: mostra
Figlio Illegittimo n°001 della:
ImmagineClicca qui per ingrandire
Avatar utente
Ally
Fondatori
Fondatori
 
Messaggi: 5354
Iscritto il: 09/08/2009, 16:07
Località: Genova
Grazie dati: 127 volte
Grazie ricevuti: 121 volte
Ruolo: Scripter
Progetto/i VX: Essence
Tool Preferito: RM2k/2k3

Re: [RGSS/RGSS2]Array & Hashes

Messaggioda herupty » 30/12/2009, 21:49

Esercizio 3
1. Crea un array bidimensionale con 4 valori quasiasi,facendo poi visualizzare un valore qualsiasi contenuto in esso.
2. Crea un array multidimensionale composto da due set e tre valori per set e fai visualizzare poi l'ultimo valore del secondo set.
3. Crea un hash bidimensionale con due chiavi/valori,e fai visualizzare una delle due.
4. Crea un hash multidimensionale con due set e fai visualizzare uno dei due.


1.
Spoiler: mostra

@array[0, 1, 2, 3]
print array[0]
=begin
ho assegnato 4 valori (0, 1, 2, 3)
visualizzo sullo scermo il valore 0
=end



2.
Spoiler: mostra

@array[[0, 1, 2], [3, 4, 5]]
print array[1][2]
=begin
- definisco due insiemi (0, 1)
- assegno ai due insiemi tre valori ciascuno
(insieme 0 (0,1,2) insieme 1(3,4,5(che poi si richiamano con 0,1,2))
- visualizzo sullo schermo l'ultimo valore del secondo insieme(set)
=end



3.
Spoiler: mostra

hash = {"blue" => "blu", "red" => "rosso"}
print hash["red"]
=begin
- ho dato all'hash due valori (blue => blu, red => rosso)
- visualizzo sullo schermo la parola "blu" perchè la chiave "blue" è collegata alla
parola "blu"
=end



4.
Spoiler: mostra

hash = {"ciao" => [c, i, a, o], "boh" => [b, o, h]}
print hash["ciao"][3]
=begin
- definisco due insiemi ("ciao", "boh")
- assegno tre valori a ciascun'insieme ("ciao"(c,i,a, o), "boh"(b,o,h))
- visualizzo sullo schermo l'ultimo valore del primo set
=end



credo di aver capito
lool | +
io: ma nel chara maker non trovo l'elmo
*invio l'img*
ally: ma sono chara mack quelli del template °_°
io: lo so
io: poi riadatto qualcosina
ally: mi servono!
ally: me ne ero dimenticato °_°

io: loool tu l'hai messo e nn ti ricordi che c'è OMG
ally: evvaiiiiii
ally: posso fare i chara nel mio stileeeeeeeee

io: XD
io: (da mettere in firma)
Avatar utente
herupty
Apprendista Maker
Apprendista Maker
 
Messaggi: 640
Iscritto il: 30/12/2009, 21:16
Località: Milano
Grazie dati: 6 volte
Grazie ricevuti: 2 volte
Ruolo: Graphic
Tool Preferito: S.E.R.P.E. ;P


Torna a Scripting

SEO Search Tags

hash rgss      lezioni rgss2      rgss hash      rgss lezioni      lezioni rgss      rgss2 array

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

cron