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

[RGSS/RGSS2]Condizioni

Guida ai corsi dell'RGSS/RGSS2.

[RGSS/RGSS2]Condizioni

Messaggioda Ally » 17/11/2009, 0:22

ImmagineClicca qui per ingrandire


Era un pò che dovevo postare la lezione,ma come vedete,siamo sempre super indaffarati :D
Vi mancavano le lezioni per imparare a diventare 'Scripter'?
Oggi torniamo con una lezione semplice,ma efficace.Le condizioni!
Iniziamo :D

Cos'è una Condizione?
Le Condizioni,sono strutture che valutano una certa azione,e a seconda di quello che è,mostra un risultato diverso.
Queste condizioni,praticamente sono identici a quelle che utilizziamo su rpgmaker ^^
Gli operatori ad esempio,in queste condizioni sono molto usati.

Tipi di condizioni: if
Una struttura maggiormente usata,è la condizione 'SE',o detta anche comunemente 'if'.
Qui sotto vi mosterò un esempio della struttura 'if',e più sotto,la programmazione fatta con rpgmaker:
 Codice: Seleziona tutto
var = 22

if var < 22
  print "Il valore è minore di 22."
else
  print "Il valore non è minore di 22."
end

Che cosa è successo in questo codice?
Abbiamo impostato una variabile che ha come valore 22.
Poi abbiamo usato una condizione 'If' per dire:
-Se la variabile var è minore di 22,mostra un mesaggio con scritto che la variabile è minore a 22.
Se invece è maggiore,mostra un messaggio contrario,vale a dire che la variabile è maggiore di 22.

In un comune evento fatto con rpgmaker,avremmo fatto una cosa così:
ImmagineClicca qui per ingrandire
Quello che abbiamo fatto,è stato ricreare un evento,uguale ad rpgmaker.
Ma ora,impariamo a creare condizioni con opzioni diverse.
Ecco il codice:
 Codice: Seleziona tutto
ally = 14

if ally == 0
print "Non è giusto"
elsif ally < 12
print "Sei Gay"
elsif ally < 18
print "Sei Gay cone Anth"
elsif ally < 120
print "Sei super Gay"
else
print "Sei il Re dei Gay xD"
end

Pensate,in ogni caso c'è una risposta.
E anche qui,si può prendere spunto dal codice creato come evento in rpgmaker :)

Quando il codice da eseguire è su una sola riga,è possibile usare una forma contratta di "if" che non prevede "end" alla fine. Il funzionamento è identico,solo che il codice va scritto prima della condizione e,la condizione sta appunto sullo stesso rigo.
Un esempio:
 Codice: Seleziona tutto
print "Non è giusto" if ally == 0

Come vedete prima è stata scritta la funzione e poi la condizione.

Un'altro metodo abbastanza comune è utilizzare l'if' con 'and' e/o 'or' per valutare più di una dichiarazione:
 Codice: Seleziona tutto
var1 = 10
var2 = 15

if var1 and var2 == 10
print "Le due variabili hanno lo stesso valore"
else
print "Una variabile ha il valore di " + var1.to_s + " e l'altra di " + var2.to_s + "."
end

if var1 or var2 == 10
print "Una delle due variabili ha valore 10"
else
print "Nessuna delle due variabili ha valore 10"
end

Nel primo esempio,i due valori devono essere uguali a 10.
Nel secondo caso,appena una delle due sarà uguale a 10,la condizione sarà soddisfatta.
Ricordatevi che si può modificare 'and' con '&&' e 'or' con '||' (vedi la lezione sugli operatori).

Tipi di condizioni: case
La funzione case,come si può intuire un po' dal nome,va utilizzata quando si devono controllare più valori della stessa variabile.

I valori controllati vengono calcolati come se si scrivesse "if variabile == valore", quindi soltanto con l'operatore "==".

N.B:Puoi considerare solo valori esatti,nè maggiore,nè minore,nè diverso.

Vediamo comunque un esempio:
 Codice: Seleziona tutto
case variabile
when 1
print "La variabile è 1"
when 2
print "La variabile è 2"
else
print "La variabile non ha nessuno dei valori scritti sopra"
end

Ci sono un po' di parole chiave ma nulla di difficile (sono quelle 2 nuove in fondo...).
La struttura base è:
 Codice: Seleziona tutto
case x
when y
[codice]
end

Come vedete il caso "else" (cioè quello che si verifica se nessuno dei "when" viene soddisfatto) non va necessariamente aggiunto, inoltre possiamo aggiungere tutti i "when" che vogliamo.

Come in "if", anche nei "when" possiamo inserire un numero,una stringa,una variabile,un oggetto e tutto quello che vogliamo.
Possiamo anche aggiungere nello stesso "when" più valori separandoli con una virgola,come nell'esempio:
 Codice: Seleziona tutto
case var
when 1, 2, 3
print "La variabile è numerica, ma non ti dico quanto vale"
print "Ok, te lo dico, vale " + var.to_s
when "ciao"
print var + " anche a te"
end


Tipi di condizioni: unless
L'ultimo tipo di condizione,è unless,che è l'opposto di If,e significa 'a meno che'...
C'è da stare abbastanza attenti,perchè comunque è una condizione che confonde abbastanza le idee facilmente.
Ma studiamone il codice:
 Codice: Seleziona tutto
var = 15

unless var == 10
print "La variabile ha un valore differente da 10"
else
print "La variabile ha un valore uguale a 10"
end

Leggiamo il codice come segue:
-Può essere qualsiasi cosa,meno che 10.
-Se non fosse stato 10,il comando rispettivo si sarebbe attivato.

La forma contratta di "if" è valida anche per "unless":
 Codice: Seleziona tutto
print "La variabile ha un valore differente da 10" unless var == 10


Facciamo un confronto tra la condizione if e la condizione unless:
if
 Codice: Seleziona tutto
if x == 10
print "è 10"
end

unless
 Codice: Seleziona tutto
unless x == 10
  print "non è 10"
end


Fondamentalmente,questo è quello che c'è da sapere sulle condizioni.
Spero no sia stata una lezione troppo 'difficile' ^^

Esercizio 5:
- Definisci una variabile con un valore qualsiasi,e crea una struttura con condizione if,verificando il suo valore e mostrando risultati differenti.
- Fare la stessa cosa dell'esercizio sopra,ma con gli switch.
- Riscrivi la seguente funzione utilizzando la forma contratta in un solo rigo.
Ricorda che puoi usare gli operatori logici per unire le condizioni!
 Codice: Seleziona tutto
if a == b
  if b != c
    print "a e c sono diversi"
  end
end

- Ally ha un sacchetto con delle mele dentro. Dovete sapere che, ad Ally, le mele rosse piacciono parecchio, quelle verdi così così e quelle gialle gli piacciono poco. Ally comunque decide di pescare una mela a caso e di mangiarne più o meno a seconda di quanto gli piace.
Costruisci una condizione "case" scrivendo dentro delle funzioni "print" quanta mela mangia Ally considerando i tre casi disponibili.

Nella prossima lezione tratteremo:
  • I Cicli (loop, while, until, for)



La lezione è stata scritta interamente da Ally e mikb89,pertanto,ne è vietata la copia senza l'autorizzazione da parte degli autori.
Copyright © [RGSS/RGSS2]Condizioni 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]Condizioni

Messaggioda mark13 » 18/05/2010, 16:40

ally,io conosco i linguaggi di programmazione c e c++ poichè gli studio ma poniamo il caso che io voglia far verificare un "qualcosa"(evento ecc)quando si sono verificate tre condizioni.
Mi spiego meglio es(relativo a rmxp):
se ev1 and ev2 and ev3
sono tutti rivolti in basso
allora......condizione verificata....
ma potrebbero essere girati in un diverso ordine... diversa e la condizione non può verificarsi finchè tutti e tre non sono rivolti al basso.....
se io metto un "tocca con l'eroe" a tre eventi e quando gli tocco,separatamente, si girano verso il basso? :sigh: col c++ riesco a farlo ma con l'rpgmkr no!aiuto! :sorr3:
Mark13
***non serve a nulla rifugiarsi nei sogni,e dimenticarsi di vivere***
ImmagineClicca qui per ingrandire



ImmagineClicca qui per ingrandire

ImmagineClicca qui per ingrandire
Avatar utente
mark13
Neofita
Neofita
 
Messaggi: 90
Iscritto il: 11/05/2010, 21:41
Grazie dati: 0 volte
Grazie ricevuti: 0 volte
Ruolo: Story Boarder
Progetto/i XP: La rivoluzione delle bestie
Tool Preferito: rpg maker xp

Re: [RGSS/RGSS2]Condizioni

Messaggioda Ally » 18/05/2010, 18:27

Non ho ben capito =D
Comunque,non è questa la sezione adatta per chiedere eventuale supporto ;)
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


Torna a Scripting

SEO Search Tags

emotion academy corso ev1      rpg maker vx come sapere le parole esatte da inserire in uno script      rgss2 case            case rgss

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

cron