Rpg²S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg²S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
Aiuto per imparare l'RGSS - - - - -

    Losco individuo
  • Utente avanzato

  • Utenti
  • Rens: 89
  • 0
  • StellettaStellettaStelletta
  • 380 messaggi
  • Sesso:Maschio
  • Provenienza:Terra - Via lattea - Galassia di Andromeda
  • Abilità:Novizio

#121 Inviato 31 October 2008 - 17:34 PM

si ma tanto non sei solo tu ^^

Immagine inserita



Immagine inserita
Membro Alfa della: "Nuova Generazione del Making Italiano"
"Richiedi anche tu il bannerino della NGdMI e contribuisci alla sopravvivenza della specie...avrai un numero tuo di identificazione e un posto nella storia del making!"

Il making con il cuore
Immagine inserita
Nuovo LegendRpgMania


    mikb89
  • Animatore

  • Utenti
  • Rens: 111
  • 0
  • StellettaStellettaStellettaStelletta
  • 666 messaggi
  • Sesso:Maschio
  • Provenienza:Sicilia
  • Abilità:Esperto

#122 Inviato 31 October 2008 - 18:48 PM

@alexotter:
Spoiler

mi dovete scusare, è colpa mia che sono stato impegnato e ho avuto problemini al pc. appena posso posto la lezione sui cicli infiniti, dopodichè faremo i cicli finiti e per ultima la lezione su moduli, classi e funzioni. quella sui cicli ho pensato di dividerla perchè è lunga, e la gestione degli errori non credo che la tratteremo.

con queste elencate sopra finiamo il linguaggio generale del ruby, poi passeremo a studiare l'RGSS.

    Alexotter
  • Nuovo Arrivato

  • Utenti
  • Rens: 23
  • 0
  • Stelletta
  • 70 messaggi
  • Sesso:Maschio
  • Provenienza:Roma
  • Abilità:Novizio

#123 Inviato 01 November 2008 - 08:38 AM

grazie mik ho capito :)

    mikb89
  • Animatore

  • Utenti
  • Rens: 111
  • 0
  • StellettaStellettaStellettaStelletta
  • 666 messaggi
  • Sesso:Maschio
  • Provenienza:Sicilia
  • Abilità:Esperto

#124 Inviato 02 November 2008 - 22:44 PM

ce l'ho fatta! XD
i cicli, tutti in una volta.

Passo 5: I cicli

Per ciclo intendiamo del codice che viene ripetuto dal programma per un numero determinato o indeterminato di volte, modificando dei valori, se necessario, in base al numero di giri che ha già fatto il codice.
Per fare un'esempio semplice, prendiamo un'array che deve contenere il numero di variabili indicato a sua volta da un'altra variabile. L'esempio chiarirà.
a = 4 # impostiamo "a" a 4
c = [] # creiamo l'array "c"
case a # se "a"
when 1 # è 1:
c.push(1) # aggiungi all'array "c" l'elemento 1
when 2 # è 2:
c.push(1, 2) # aggiungi all'array "c" gli elementi 1 e 2
when 3 # è 3:
c.push(1, 2, 3) # aggiungi all'array "c" gli elementi 1, 2 e 3
[...]
Ovviamente del codice del genere non può esistere, sia perchè occupa spazio inutilmente, sia perchè non copre tutti i casi e sia perchè in sè non serve a niente...
a = 4 # impostiamo "a" a 4
c = [] # creiamo l'array "c"
for n in 1..a # ciclo da 1 a "a"
c.push(n) # aggiungi all'array "c" l'elemento "n"
end # fin qui
Questo è un ciclo, per l'esattezza un ciclo "for"; ci sono altri cicli che andremo a vedere.
Possiamo notare che con poche righe il risultato è pure migliore di quello che avevamo con case. Questo non significa che case non va usato, ma va usato tutto, nei momenti opportuni.
Vediamo meglio il ciclo for.
In tutti i casi, dovremo scrivere "for" all'inizio del blocco di codice e "end" alla fine. "n" è una variabile creata dal ciclo ed impostata al numero di partenza specificato (1 in questo caso) che ad ogni giro viene incrementata di 1. "in" è una parola chiave che va specificata dopo il nome della variabile. "1..a" specifica il numero di giri da eseguire. In questo caso, a vale 4, quindi questo codice verrà eseguito in questo modo:
ciclo con n = 1
aggiungi 1 all'array c
ciclo con n = 2
aggiungi 2 all'array c
ciclo con n = 3
aggiungi 3 all'array c
ciclo con n = 4
aggiungi 4 all'array c
n è uguale ad a quindi stop
ottenendo c = [1,2,3,4].
Occorre specificare che, in 1..a, a (il secondo valore) deve essere più grande o uguale ad 1 (il primo valore) per essere eseguito il ciclo. Ed entrambi i numeri devono essere interi.
Oltre a 1..a si può scrivere 1...a che equivale a 1..a-1. Questo metodo/tecnica viene usato solitamente quando si trattano array, infatti se c è [1,2,3,4], c.size sarà 4, mentre per prendere o modificare i dati di c, saranno indicati con c[0], c[1], c[2] e c[3], non con c[4]. I possibili codici possono quindi essere:
c = [1,2,3,4] # impostiamo i valori dell'array c

# metodo 1
for n in 0..c.size - 1 # ciclo da 0 fino alla grandezza di c - 1 (3)
c[n] = n + 1 # aggiungi nella posizione n di c, n + 1
end # fin qui

#metodo 2
for n in 0...c.size # ciclo da 0 fino alla grandezza di c - 1 (3)
c[n] = n + 1  # aggiungi nella posizione n di c, n + 1
end # fin qui

#metodo 3
for n in 1..c.size # ciclo da 1 fino alla grandezza di c (4)
c[n - 1] = n  # aggiungi nella posizione n - 1 di c, n
end # fin qui
Questi sono soltanto esempi, le possibilità sono infinite (o quasi), e servono solo per rendere l'idea.
Nel caso di array, 1..a può essere completamente sostituito con il nome dell'array o direttamente con il contenuto ([1, 4, 6]), ma attenzione, in questo caso n non conterrà il numero di giri, ma gli elementi dell'array a turno. Inquest'esempio:
c = [4,7,3,2] # impostiamo i valori dell'array c

for n in c # ciclo per ogni elemento di c
p n # stampa il valore di n
end # fin qui
Verranno stampanti a schermo in sequenza 4, 7, 3, 2, e non 0, 1, 2, 3.
Colgo l'occasione per introdurre quest'importante funzione "p", che seguita da un numero, del testo tra virgolette, una variabile, un'array o un'oggetto, mostrerà il contenuto tramite una finestra di messaggio (di Windows).

Gli altri cicli sono principalmente "while", "until" e "do".
I cicli while e until non hanno un numero determinato di giri e non sono complicati come for da impostare. Semplicemente:
while [condizione]
[istruzioni]
end

until [condizione]
[istruzioni]
end
a [condizione] va sostituita una condizione come quelle del passo precedente (però senza if, unless, case e ?), mentre [istruzioni] è il codice che viene eseguito.
La differenza fra i due è in un certo qual modo, la stessa che passa tra if e unless, e cioè while esegue le istruzioni fino a quando la condizione resta vera, mentre until smette di seguirle non appena la condizione è vera. Riporto un esempio di utilizzo valido dei due cicli:
num = 0 # impostiamo num a 0
while num < 3 # ciclo mentre num resta minore di 3
p num # stampa il valore di num
num += 1 # incrementa num di 1
end # fin qui
# in questo modo num viene incrementato
# fino a che la condizione
# non sia più soddisfatta

arr = [] # creiamo l'array arr
until arr.size == 3 # cicla finche la dimensione di arr arriva a 3
arr.push("valore qualsiasi") # inseriamo la stringa nell'array arr
end # fin qui
Inoltre, come per if, while e until, possono essere utilizzate anche in una riga. Faccio l'esempio con until, dato che il metodo è lo stesso di while, e nel codice le istruzioni dell'until stanno su una riga.
arr = [] # creiamo l'array arr
arr.push("valore qualsiasi") until arr.size == 3 # inseriamo la stringa fino a quando la dimensione è 3

Discorso a parte per do i cui casi di utilizzo sono più ampi.
Può essere utilizzato in questo modo:
loop do # cicla senza limiti
[istruzioni]
end # fin qui
e ripeterà continuamente; in quest'altro:
3.times do # cicla 3 volte
[istruzioni]
end # fin qui
e, dato un numero o una variabile numerica prima di .times, ciclerà per il numero di volte indicato; così:
"stringa".each_line do |a| # cicla 1 volta
[istruzioni]
end # fin qui
e, data una stringa, ciclerà per il numero di linee (in questo caso una soltanto) di essa, mettendo in a il contenuto; e in molti altri modi che si possono trovare nella guida.

Le ultime cose importanti prima di concludere sono le istruzioni next e break. L'istruzione next serve per far saltare il giro e break per terminare tutto il ciclo. Queste due istruzioni vanno inserite tra la definizione del ciclo e l'istruzione end, e non sono obbligatorie. Faccio un esempio giusto per evidenziare qualche possibilità.
a = 0 # impostiamo a a 0
no = [2, 4, 5, 8] # creiamo l'array no con qualche numero
loop do # cicla senza limiti
a += 1 # incrementa a di 1
break if a >= 11 # interrompi se a supera o eguaglia 11
next if no.include?(a) # salta il codice successivo se a è inclusa in no
p a # mostra il valore di a
end # fin qui
Questo codice mostra il contenuto di a se il numero è diverso da quelli contenuti nell'array no e smette quando a è 11 o più. Conviene inserire il >= in questi casi per evitare che l'accidentale caso di salto di un numero faccia continuare all'infinito il ciclo e quindi bloccare il programma. In questo codice non succede perchè a viene incrementato prima,ma se è possibile farlo, inserire >= invece di == può convenire.

Questa è forse la lezione più complicata da capire per uno che inizia coi linguaggi di programmazione, e forse no, ma è comunque importante e va imparata bene.

5) Creare un array globale vuoto.
Aggiungere all'array i tre numeri 1, 2 e 8 utilizzando un ciclo a scelta.
Impostare un ciclo che continui finchè i tre valori contenuti nell'array sono diversi (quindi che smette quando sono uguali).
Fate in modo che il programma non si blocchi e come ho fatto in questo passo, mettete in ogni riga un commento che ne spiega la funzione.

Ho cercato di essere più chiaro nello scrivere l'esercizio. Lo sono stato?

    Kamahl
  • Nuovo Arrivato

  • Utenti
  • Rens: 6
  • 0
  • Stelletta
  • 89 messaggi
  • Sesso:Maschio
  • Abilità:Novizio

#125 Inviato 03 November 2008 - 10:46 AM

5) Creare un array globale vuoto.
Aggiungere all'array i tre numeri 1, 2 e 8 utilizzando un ciclo a scelta.
Impostare un ciclo che continui finchè i tre valori contenuti nell'array sono diversi (quindi che smette quando sono uguali).
Fate in modo che il programma non si blocchi e come ho fatto in questo passo, mettete in ogni riga un commento che ne spiega la funzione.

Ho cercato di essere più chiaro nello scrivere l'esercizio. Lo sono stato?

l'ultima parte non tanto, cioè non ho capito che intendi per "Fate in modo che il programma non si blocchi", per caso intendi che l'ultimo ciclo non deve essere infinito?, io l'ho interpretato così:
Spoiler

Fiero membro della:

Immagine inserita

Immagine inserita A YumeNo-Soft Production

    Losco individuo
  • Utente avanzato

  • Utenti
  • Rens: 89
  • 0
  • StellettaStellettaStelletta
  • 380 messaggi
  • Sesso:Maschio
  • Provenienza:Terra - Via lattea - Galassia di Andromeda
  • Abilità:Novizio

#126 Inviato 03 November 2008 - 15:54 PM

5) Creare un array globale vuoto.
Aggiungere all'array i tre numeri 1, 2 e 8 utilizzando un ciclo a scelta.
Impostare un ciclo che continui finchè i tre valori contenuti nell'array sono diversi (quindi che smette quando sono uguali).
Fate in modo che il programma non si blocchi e come ho fatto in questo passo, mettete in ogni riga un commento che ne spiega la funzione.

senti, io ho una mente malata, e guarda se questo scempio abominevole può anche solo esistere: il try ruby lo prende, magari esiste, ma l'esercizio è sbagliato. Io ho cercato di cavarmela in qualche modo^^

cominciamo:

Creare un array globale vuoto.
Aggiungere all'array i tre numeri 1, 2 e 8 utilizzando un ciclo a scelta.


Spoiler

ma non esiste il when0? altrimenti invece della prima condizione avrei usato direttamente when0, when1, when2

Impostare un ciclo che continui finchè i tre valori contenuti nell'array sono diversi (quindi che smette quando sono uguali).


[spoiler]questo non sono capace, ho guardato quello che ha fatto Kamahl, ma tutte le volte usa comandi, che non hai spiegato...mannaggia a kamahl, che non si può copiare ><!!

Modificato da Losco individuo, 03 November 2008 - 18:08 PM.

Immagine inserita



Immagine inserita
Membro Alfa della: "Nuova Generazione del Making Italiano"
"Richiedi anche tu il bannerino della NGdMI e contribuisci alla sopravvivenza della specie...avrai un numero tuo di identificazione e un posto nella storia del making!"

Il making con il cuore
Immagine inserita
Nuovo LegendRpgMania


    PSYKO
  • Utente occasionale

  • Utenti
  • Rens: 27
  • 0
  • StellettaStelletta
  • 118 messaggi
  • Sesso:Maschio
  • Provenienza:Regno degli Shinigami
  • Abilità:Adepto

#127 Inviato 04 November 2008 - 22:05 PM

allora...

Spoiler

va bene?

Il making con il cuore
Immagine inserita
Nuovo LegendRpgMania



Immagine inserita

Immagine inseritaImmagine inseritaImmagine inserita
Which Final Fantasy Character Are You?
Final Fantasy 7





    PSYKO
  • Utente occasionale

  • Utenti
  • Rens: 27
  • 0
  • StellettaStelletta
  • 118 messaggi
  • Sesso:Maschio
  • Provenienza:Regno degli Shinigami
  • Abilità:Adepto

#128 Inviato 04 November 2008 - 22:24 PM

Easy, fido....

Spoiler

va bene?

Il making con il cuore
Immagine inserita
Nuovo LegendRpgMania



Immagine inserita

Immagine inseritaImmagine inseritaImmagine inserita
Which Final Fantasy Character Are You?
Final Fantasy 7





    PSYKO
  • Utente occasionale

  • Utenti
  • Rens: 27
  • 0
  • StellettaStelletta
  • 118 messaggi
  • Sesso:Maschio
  • Provenienza:Regno degli Shinigami
  • Abilità:Adepto

#129 Inviato 04 November 2008 - 22:27 PM

1) Creare una costante e una variabile globale che siano rispettivamente float e stringa. Inserire un numero qualsiasi nel nome di una delle due variabili.


easy, fido
Spoiler

Il making con il cuore
Immagine inserita
Nuovo LegendRpgMania



Immagine inserita

Immagine inseritaImmagine inseritaImmagine inserita
Which Final Fantasy Character Are You?
Final Fantasy 7





    mikb89
  • Animatore

  • Utenti
  • Rens: 111
  • 0
  • StellettaStellettaStellettaStelletta
  • 666 messaggi
  • Sesso:Maschio
  • Provenienza:Sicilia
  • Abilità:Esperto

#130 Inviato 04 November 2008 - 23:31 PM

allora allora
@kamahl:
Spoiler

@losco:
Spoiler

@psyko:
Spoiler

un'annotazione che devo fare un pò a tutti riguarda gli spazi e la sistemazione del codice. mantenere un'ordine può sembrare una cosa superficiale, ma invece aiuta molto, quindi è importante metterci attenzione.

in particolare i segni di uguaglianza e le operazioni vanno distanziate dal resto:
a = 5
a += 3 if b == 2
c != a ? b = a + c : a = b = c
e lo stesso per le funzioni, forain0..2 non è la stessa cosa di for a in 0..2, darà anche errori di sintassi, quindi badateci.

    Niki#94#
  • Utente occasionale

  • Utenti
  • Rens: 15
  • 0
  • StellettaStelletta
  • 190 messaggi
  • Sesso:Femmina
  • Provenienza:*w* prova ad indovinare *w*
  • Abilità:Novizio

#131 Inviato 07 November 2008 - 19:55 PM

scusate, ma io non riesco a trovare molto tempo ultimamente... ogni tanto, posterò gli esercizi... quindi, andate pure avanti senza di me^^
Immagine inserita

Immagine inserita
Disegnatrice grafica onoraria della: "Nuova Generazione del Making Italiano"

Quello che mi piace:
Spoiler

    mikb89
  • Animatore

  • Utenti
  • Rens: 111
  • 0
  • StellettaStellettaStellettaStelletta
  • 666 messaggi
  • Sesso:Maschio
  • Provenienza:Sicilia
  • Abilità:Esperto

#132 Inviato 20 November 2008 - 18:39 PM

direi che non ci vado avanti... state abbandonando tutti e l'unico che ha fatto correttamente l'ultimo esercizio è kamahl mentre losco individuo l'ha cominciato ma non l'ha finito. posso capire che questo passo è un pò difficile (forse senza "un pò"), ma provateci, in modo da correggervi se sbagliate. l'ultimo argomento, quello dopo di questo tratterà moduli, classi e funzioni, che non comportano niente di difficile (anzi forse sono più facili delle variabili) e utilizzerò l'esercizio per riassumere tutti gli argomenti precedenti. dopodichè cominceremo ad analizzare gli script e allora diventerà più interessante/utile/quellochevolete, ma prima di continuare voglio che almeno tre persone facciano questo esercizio giusto (quindi ne mancano due)

    Alexotter
  • Nuovo Arrivato

  • Utenti
  • Rens: 23
  • 0
  • Stelletta
  • 70 messaggi
  • Sesso:Maschio
  • Provenienza:Roma
  • Abilità:Novizio

#133 Inviato 20 November 2008 - 21:12 PM

purtroppo è da due settimane che sto sotto esami e questa storia continua fino a fine novembre, mi scuso con tutti voi se vi ho rallentato (anche se non credo di averlo fatto) ma non riesco a seguire queste "lezioni". Vi prometto che dal 1 dicembre mi rimetto in paro con tutto, anche perchè, facendo ingegneria informatica, sono argomenti che mi interessano molto :)

    mikb89
  • Animatore

  • Utenti
  • Rens: 111
  • 0
  • StellettaStellettaStellettaStelletta
  • 666 messaggi
  • Sesso:Maschio
  • Provenienza:Sicilia
  • Abilità:Esperto

#134 Inviato 20 November 2008 - 21:33 PM

Damager 0
secondo-me 0,1
Eberk94 0,1
PSYKO 1,2
giangra 0,1,2
alexotter 0,1,2,3
Losco individuo 0,1,2,3,4
Niki#94# 0,1,2,3,4
Kamahl 0,1,2,3,4,5

così, una lista orientativa.
0 è l'iscrizione, gli altri numeri sono gli esercizi completati. quello che mi preoccupa è che per ogni esercizio si perdono due utenti XD

in ogni caso io son sempre qui, aspetto vostri esercizi^^

    Alexotter
  • Nuovo Arrivato

  • Utenti
  • Rens: 23
  • 0
  • Stelletta
  • 70 messaggi
  • Sesso:Maschio
  • Provenienza:Roma
  • Abilità:Novizio

#135 Inviato 29 January 2009 - 21:38 PM

Della serie: meglio tardi che mai :rolleyes:

5) Creare un array globale vuoto.
Aggiungere all'array i tre numeri 1, 2 e 8 utilizzando un ciclo a scelta.
Impostare un ciclo che continui finchè i tre valori contenuti nell'array sono diversi (quindi che smette quando sono uguali).
Fate in modo che il programma non si blocchi e come ho fatto in questo passo, mettete in ogni riga un commento che ne spiega la funzione.


Spoiler

Modificato da Alexotter, 29 January 2009 - 21:40 PM.


    mikb89
  • Animatore

  • Utenti
  • Rens: 111
  • 0
  • StellettaStellettaStellettaStelletta
  • 666 messaggi
  • Sesso:Maschio
  • Provenienza:Sicilia
  • Abilità:Esperto

#136 Inviato 15 February 2009 - 10:42 AM

@alexotter:
Spoiler


cercherò di dare esercizi più senzati, scusatemi ç_ç
cercherò anche di postare a breve quella lezione su moduli, classi e funzioni e rimettermi in linea per postare le lezioni su RGSS
grazie per la sopportazione xD

    Alexotter
  • Nuovo Arrivato

  • Utenti
  • Rens: 23
  • 0
  • Stelletta
  • 70 messaggi
  • Sesso:Maschio
  • Provenienza:Roma
  • Abilità:Novizio

#137 Inviato 17 February 2009 - 16:34 PM

ok grazie ;) cmq sì, il primo è stato un errore di battitura, non voluto

    nihil-omen
  • Animatore

  • Utenti
  • Rens: 0
  • 0
  • StellettaStellettaStellettaStelletta
  • 700 messaggi

#138 Inviato 18 April 2009 - 15:06 PM

Faccio sempre in tempo a iscrivermi? E se si, si continuano le lezioni? (anche con calma visto che sto in zona esoneri/esami)

Immagine inserita
} 2rA - web site {
E' disponibile il primo capitolo completo di 2rA!
} 2rA: Capitolo I {


    Fire-Dragon-DoL
  • Nuovo Arrivato

  • Utenti
  • Rens: 5
  • 0
  • Stelletta
  • 96 messaggi
  • Sesso:Maschio
  • Provenienza:Roma
  • Abilità:Esperto

#139 Inviato 19 April 2009 - 12:34 PM

A me il corso interessa molto se poi successivamente una volta che tutti hanno imparato il dovuto, andiamo nella sezione "avanzata", ovvero a utilizzare ciò che è fornito dall'rpg maker... sarei molto interessato se la risposta è affermativa ;)
If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one? (Tom Cargill)

Se dovete fare una cosa semplice, tipo

 
if (a==b) c='pippo';else c='pluto';
Usate le funzionalita' del linguaggio piu' complicato che esiste:
 
c=select decode(sign(a-b),0,"pippo","pluto");

    Losco individuo
  • Utente avanzato

  • Utenti
  • Rens: 89
  • 0
  • StellettaStellettaStelletta
  • 380 messaggi
  • Sesso:Maschio
  • Provenienza:Terra - Via lattea - Galassia di Andromeda
  • Abilità:Novizio

#140 Inviato 19 April 2009 - 17:40 PM

la risposta è affermativa mica tanto^^

mikb89 (colui che tiene il corso) ha problemi di connessione.

Se volete iscrivervi fatelo eseguite i 5 esercizi proposti in precedenza e chiederò io a qualcuno di correggerli.

Immagine inserita



Immagine inserita
Membro Alfa della: "Nuova Generazione del Making Italiano"
"Richiedi anche tu il bannerino della NGdMI e contribuisci alla sopravvivenza della specie...avrai un numero tuo di identificazione e un posto nella storia del making!"

Il making con il cuore
Immagine inserita
Nuovo LegendRpgMania



Torna a Supporto RGSS (XP)


  • Feed RSS