Vai al contenuto


Toggle Chat RM - Chat Apri la Chat in un popup

E' severamente vietato richiedere supporto su RPG Maker in chat!
@  NoxChibi : (18 May 2012 - 01:54 PM) http://rpgmkr.net/fo...4025#entry24025
@  Abadon : (18 May 2012 - 10:08 AM) saaalveee
@  Melosx : (17 May 2012 - 09:51 PM) Cambiato Avatar,,, premete CTRL + F5 se vedete ancora Roxas ^.^
@  NoosiTD : (17 May 2012 - 08:42 PM) evvai
@  kekkorider : (17 May 2012 - 08:40 PM) @NoosiTD eccoti accontentato
@  Melosx : (17 May 2012 - 08:30 PM) E7: Astral Ocean è bellisimo... e come lo subbavano i Nostrano non lo subba nessuno... devo vedere gli anime magic se sono buoni o no
@  NoosiTD : (17 May 2012 - 08:26 PM) e voglio i risultati del contest
@  NoosiTD : (17 May 2012 - 08:24 PM) Il problema è che non ne ho mai capito un accidenti
@  NoosiTD : (17 May 2012 - 08:24 PM) lo guardavo anch'io E7
@  Melosx : (17 May 2012 - 08:23 PM) non puoi capire...
@  Melosx : (17 May 2012 - 08:23 PM) un capolavoro distrutto
@  NoosiTD : (17 May 2012 - 08:21 PM) ma calmino
@  Melosx : (17 May 2012 - 08:21 PM) minchia quanto sono incazato
@  Melosx : (17 May 2012 - 08:20 PM) devo provare l'ultimo che riamane
@  Melosx : (17 May 2012 - 08:20 PM) gli altri subber subbano a cachio di cane morto
@  Melosx : (17 May 2012 - 08:20 PM) gli omoshiroi ci stanno secoli per subbare quegli episodi... oltretutto sbagliano pure il nome di una ragazza
@  Melosx : (17 May 2012 - 08:19 PM) subbato come si deve??
@  Melosx : (17 May 2012 - 08:19 PM) dove lo scarico ora E7:AO
@  Melosx : (17 May 2012 - 08:19 PM) ma chissene di soul eater
@  NoosiTD : (17 May 2012 - 08:17 PM) io facevo così quando mi accorgevo che Soul Eater era finito

1 - Variabili e convenzioni lessicali


  • Per cortesia connettiti per rispondere
24 risposte a questa discussione

#1 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 18 January 2010 - 03:08 AM

Commentare il codice

La prima regola di un programmatore è commentare SEMPRE! Un programma ben commentato risulta più gradevole alla vista, meglio organizzato e più leggibile. Un programma non commentato rallenta il tempo di debugging, rendendo difficile localizzare un errore, rende difficile ad altra gente leggere e comprendere il funzionamento del programma stesso e soprattutto, a lungo termine, ne rende difficile la lettura anche da parte del programmatore stesso.

I commenti, in Lua, sono indicati dal doppio trattino "--". All'interno della stessa riga di un programma, tutto ciò che precede "--" è considerato codice, mentre tutto ciò che lo segue è considerato commento.

-- Sono un commento molto bello e utile.

Variabili ed Identificatori

Una variabile, in Lua, è un contenitore di dati contrassegnato da un "identificatore" specifico. L'identificatore o, semplicemente, nome della variabile, può essere composto da qualsiasi lettera (maiuscola o minuscola) o numero (purchè non sia il primo carattere). L'unico simbolo che può far parte del nome è "_", che viene solitamente utilizzato come spaziatore in identificatori molto lunghi es:
meglio_utilizzare_identificatori_brevi_per_evitare_di_confondersi
In Lua esistono "parole riservate al linguaggio" che non possono essere utilizzate come identificatori. Queste parole sono:

and
local
true
false
nil
in
and
or
not
for
while
do
until
break
repeat
if
then
else
elseif
function
return
end


Inizializzazione e tipi di dato!

Ogni variabile, contrassegnata dal relativo identificatore, può essere "inizializzata" in qualsiasi momento all'interno del nostro programma. Prima di essere inizializzata la variabile è comunque esistente, ma il suo valore è nil (nullo). Per inizializzare una variabile, si utilizza l'operatore di assegnamento "=":
nome_variabile = valore
Ad una variabile può essere assegnato un valore di qualsiasi "tipo": numerico, booleano, stringa, nullo, table (set eterogeneo di valori) e funzione (eh si, in Lua si possono creare funzioni in run-time, e trattarle come fossero variabili normalissime!).

Per verificare il tipo del valore di una determinata variabile, durante l'esecuzione del nostro programma, si può utilizzare la funzione type(), che restituisce una stringa diversa in base al tipo di variabile che le passiamo:

variabile_da_verificare = 20
print(type(variabile_da_verificare)) -- Stamperà la stringa "number"

Quando una variabile è stata inizializzata con un determinato tipo di dato, come nell'esempio precedente, nulla ci impedisce di reimpostarla assegnandole un valore di tipo diverso:

variabile_stupida = 10
print(type(variabile_stupida)) -- "number"
variabile_stupida = "bau"
print type(variabile_stupida) -- "string"

number (Numero)

Il tipo "number" è rappresentato da qualsiasi numero intero o decimale. La funzione "type()", in presenza di una variabile di questa tipologia, restituisce la stringa "number".

variabile_number = 10 -- Complimenti, hai inizializzato una variabile di tipo number!!

string (Stringa)

Una stringa è rappresentata da una qualsiasi sequenza di caratteri e simboli racchiusi tra apici ' o doppi apici ". La forza del linguaggio Lua è la mole di funzioni che mette a disposizione per elaborare stringhe e tables, e che vedremo tra qualche lezione. Nel caso delle stringhe, la funzione "type()" restituisce la stringa "string".

variabile_cretina = 'sono una stringa!'
variabile_stupidella = "pure io, però uso i doppi apici e vengo usata più spesso!"

boolean (Booleani)

Le variabili booleane possono contenere solamente due valori: "true" (vero) e "false" (falso), un po' come gli switch in RPGMaker.

variabile_booleana = false

La funzione "type()" ci restituirà la stringa "boolean".

nil (Nullo)

Una qualsiasi variabile, prima di essere inizializzata, è di valore "nil" (nullo). Se, durante il nostro programma, dovessimo aver bisogno di "resettare" una variabile, sarà sufficiente:

variabile_da_resettare = nil

"type()" restituirà la stringa "nil"!

Conclusione ed esercizi

Nella prossima lezione tratteremo le tables (set di valori) e le funzioni (piccoli frammenti di programma che eseguono una routine predefinita e che possono essere chiamati in qualsiasi momento). Giusto per riscaldarvi un pochino, vi propongo un paio di esercizi in attesa della prossima lezione (che stavolta arriverà prima^^):

Esercizio 1: Inizializzate una variabile, assegnandole un valore numerico.
Inizializzate una seconda variabile, in modo che sia uguale alla prima. Ora, assegnate alla prima variabile un valore di tipo "string" e stampatela su schermo.

Esercizio 2: Inizializzate una variabile con qualsiasi valore e di qualsiasi tipo (eccetto table e function). Inizializzate una seconda variabile. Questa nuova variabile dev'essere di tipo "string" e deve contenere, come valore, la stringa che descrive il tipo della prima variabile.

Esercizio 3: Create, in un file di testo .lua, un micro programmino che:
inizializzi una variabile per ciascun tipo di dato spiegato durante la lezione, che stampi su schermo le variabili di tipo number e string, e che infine stampi a schermo i tipi di ciascuna variabile precedentemente inizializzata. Commentate poi il programma, testatelo utilizzando la console interattiva ed infine allegatelo al topic!

Nota: Nonostante non sia stato spiegato il modo di risolvere i primi due esercizi, dovreste arrivare alla soluzione tranquillamente usando l'intuito.
Podi raggiunti
Spoiler

#2 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 18 January 2010 - 04:10 AM

O_O
Devo pazientare e leggere tutto ^^
Dalla prima occhiata però sembra molto simile all'RGSS,quindi per chi fa già uso di quel 'linguaggio' non sarà poi così difficile(spero).
Bella lezione comunque :)
Posterò sicuramente la mia prova all'esercizio ;)
Immagine inserita
Spoiler

#3 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 18 January 2010 - 04:15 AM

Beh, diciamo che entrambi i linguaggi non hanno "fronzoli vari" come i punti e virgola o il dover specificare il tipo di variabile come in C. Comunque conoscerne uno facilita l'apprendimento dell'altro!
Podi raggiunti
Spoiler

#4 OFFLINE   herupty

herupty

    Apprendista Maker

  • Utenti RM
  • 640 Messaggi:
  • LocalitàMilano
  • Tool:
    S.E.R.P.E. ;P

Inviato 24 January 2010 - 09:05 PM

mi da errore all'esercizio 1(stdin:1: '=' expected near 'type')
ecco il programmino
Spoiler

comunque provo gli altri esercizi
lool
Spoiler

#5 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 25 January 2010 - 05:21 PM

perdonate l'errore idiota... colpa mia! ciò che va stampato tramite la funzione "print" va incluso tra parentesi, come ogni altra chiamata a funzione:

print(type(variabile))

Podi raggiunti
Spoiler

#6 OFFLINE   herupty

herupty

    Apprendista Maker

  • Utenti RM
  • 640 Messaggi:
  • LocalitàMilano
  • Tool:
    S.E.R.P.E. ;P

Inviato 25 January 2010 - 05:47 PM

ah...grazie
lool
Spoiler

#7 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 25 January 2010 - 06:04 PM

Ecco, ho editato la lezione correggendo l'errore! Comunque l'esercizio di herupty è corretto, anche se nell'esercizio intendevo inizializzare la seconda variabile con un valore uguale alla prima, fingendo però di non conoscerlo:
variabile = 10
variabile_due = variabile

Podi raggiunti
Spoiler

#8 OFFLINE   herupty

herupty

    Apprendista Maker

  • Utenti RM
  • 640 Messaggi:
  • LocalitàMilano
  • Tool:
    S.E.R.P.E. ;P

Inviato 25 January 2010 - 08:15 PM

Esercizio 1
Spoiler

Esercizio 2
Spoiler

Esercizio 3
Spoiler

il problema è che mi da errore quando lo apro nella console...
io scrivo
dofile("es3.lua")
e mi esce questo errore:
es3.lua:1: unexpected symbol near ' '
start traceback:
[C]: in function 'dofile'
stdin:1: in main chunk
[C]: ?

lool
Spoiler

#9 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 26 January 2010 - 01:54 AM

E' una cosa stranissima! L'esercizio è giusto, e copiaincollando il tuo codice non mi da nessun errore °°

Se fosse un problema della console (cosa che non capisco, visto che con me funzia) non ci sarebbe comunque da preoccuparsi, visto che quando inizieremo a programmare giochi la abbandoneremo!

Non è che usi linux?

Comunque nell'esercizio 3, dove hai utilizzato la funzione "print" con più argomenti, non era necessario racchiuderli tra parentesi. Non è un errore, comunque. Bravo!
Podi raggiunti
Spoiler

#10 OFFLINE   herupty

herupty

    Apprendista Maker

  • Utenti RM
  • 640 Messaggi:
  • LocalitàMilano
  • Tool:
    S.E.R.P.E. ;P

Inviato 26 January 2010 - 04:27 PM

grazie...comunque ho risolto...
non so come ho fatto, ma ho risolto
lool
Spoiler

#11 OFFLINE   herupty

herupty

    Apprendista Maker

  • Utenti RM
  • 640 Messaggi:
  • LocalitàMilano
  • Tool:
    S.E.R.P.E. ;P

Inviato 28 January 2010 - 03:42 PM

altre lezioni?
lool
Spoiler

#12 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 30 January 2010 - 01:13 PM

Arrivano dopo il 3 febbraio ^^ (ho un esame proprio quel giorno...)
Podi raggiunti
Spoiler

#13 OFFLINE   herupty

herupty

    Apprendista Maker

  • Utenti RM
  • 640 Messaggi:
  • LocalitàMilano
  • Tool:
    S.E.R.P.E. ;P

Inviato 30 January 2010 - 01:15 PM

ah...http://rpgmkr.net/forum/public/style_emoticons/default/xd.gif....scusa...
lool
Spoiler

#14 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 06 February 2010 - 01:53 PM

Però non male questo linguaggio^_^
Ha una sintassi molto intuibile è semplice(Direi che è molto più semplice del C# http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif)mi ricorda Python^_^
La cosa che mi piace,è che per definire il tipo della variabile,non bisogna usare una delle keywords(Come in molti linguaggi) ma basta impostargli il valore,quindi è più sbrigativo ^_^

Attendo altre lezioni,perchè questo linguaggio inizia a interessarmi,anche se il mio amore è il C# http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#15 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 06 February 2010 - 02:03 PM

Infatti, questa è proprio la potenza del Lua. Pensa che è possibile persino assegnare come valore ad una variabile una funzione, e magari passarla come argomento ad un'altra funzione... A presto con le prossime lezioni, ora sono intrippato a leggere 200 pagine di documentazione per il tirocinio universitario...
Podi raggiunti
Spoiler

#16 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 06 February 2010 - 02:46 PM

Già bello potente semplice :P
Non ti preoccupare,studia con calma,noi siamo qui ad aspettarti http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif....oddio 200 pagine http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif..pensare che fra 2-3 anni dovrò percorrere anchio quella strada >.<(Che facoltà hai scelto? un piccolo OT sorry http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif)
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#17 OFFLINE   napco

napco

    Maker Viandante

  • Utenti RM
  • 205 Messaggi:
  • LocalitàMarte
  • Tool:
    C(++)ervello

Inviato 06 February 2010 - 08:30 PM

Biotecnologie e... te la sconsiglio, a meno che non sia proprio la tua vocazione. Tanto tra poco mi laureo e scappo a fare il triennio di Informatica http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif
Podi raggiunti
Spoiler

#18 OFFLINE   Takobon

Takobon

    Recensori

  • Recensori
  • 415 Messaggi:
  • Tool:
    VS+C#+Xna(Con i quali nascerà Inferdaen)

Inviato 06 February 2010 - 08:34 PM

napco, dice:

Biotecnologie e... te la sconsiglio, a meno che non sia proprio la tua vocazione. Tanto tra poco mi laureo e scappo a fare il triennio di Informatica http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif

No per niente http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif,la mia vocazione è la programmazione,quindi prenderò lafacoltà d'informatica e poi non so scappare in America,sperando di trovare lavoro e anche un master o un'università per Game Designer..dovrebbero esserci
http://nexuseden.tumblr.com/Immagine inseritaSono così annoiato da offrirmi come eventer per qualsiasi progetto (:NightEngine
Spoiler

#19 OFFLINE   herupty

herupty

    Apprendista Maker

  • Utenti RM
  • 640 Messaggi:
  • LocalitàMilano
  • Tool:
    S.E.R.P.E. ;P

Inviato 12 March 2010 - 07:57 PM

UP, riesumo il topic
lool
Spoiler

#20 OFFLINE   3xter

3xter

    Fondatori

  • Amministratori
  • 1006 Messaggi:
  • Progetto VX:
    Rain's Legacy
  • Tool:
    Rpg Maker VX / Sharp Develop

Inviato 13 March 2010 - 12:40 PM

Per cosa?
Immagine inserita Burle Simpatiche
Spoiler
Ecco perchè Rain's Legacy va avanti rapidamente
Spoiler




1 utente(i) stanno leggendo questa discussione

0 utenti, 1 ospiti, 0 utenti anonimi