Vai al contenuto


Toggle Chat RM - Chat Apri la Chat in un popup

E' severamente vietato richiedere supporto su RPG Maker in chat!
@  Pech93 : (22 May 2012 - 06:48 PM) Night l'hai visto???
@  Pech93 : (22 May 2012 - 06:42 PM) night MP
@  Pech93 : (22 May 2012 - 06:42 PM) Ciaoooooooooo
@  Night : (22 May 2012 - 06:35 PM) bene, mi sto allenando sui disegni, ho in mente molte scene disegnate da presentare nel gioco
@  Night : (22 May 2012 - 06:35 PM) so di essere un po' in ritardo, ma rispondo lo stesso XD
@  NoxChibi : (22 May 2012 - 02:59 PM) hi night come procede il tuo progetto?
@  Night : (22 May 2012 - 02:56 PM) buongiornooo :3
@  MihaChan : (22 May 2012 - 01:20 PM) lol
@  MihaChan : (22 May 2012 - 01:20 PM) !!oaiC
@  Melosx : (22 May 2012 - 12:47 PM) ^.^ !!nahCahiM oaiC
@  MihaChan : (22 May 2012 - 12:41 PM) buonsalve
@  Melosx : (22 May 2012 - 12:28 PM) cmq buongiorno a tutti
@  Melosx : (22 May 2012 - 12:28 PM) Dimmi Nox
@  MihaChan : (22 May 2012 - 12:07 PM) Illusi ghgh
@  MihaChan : (22 May 2012 - 12:06 PM) Gli piacerebbe.... xDDDD
@  MihaChan : (22 May 2012 - 12:06 PM) e Francesi che dicono che il Ferrero Rocher è Francese....
@  MihaChan : (22 May 2012 - 12:06 PM) Tedeschi che dicono che la Nutella, il Kinder Cioccolato e L'ovetto Kinder sono tedeschi...
@  MihaChan : (22 May 2012 - 12:06 PM) Ah
@  NoxChibi : (21 May 2012 - 10:20 PM) melosx
@  NoosiTD : (21 May 2012 - 05:10 PM) lololo

[RGSS/RGSS2]Condizioni


  • Per cortesia connettiti per rispondere
2 risposte a questa discussione

#1 OFFLINE   Ally

Ally

    Fondatori

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

Inviato 17 November 2009 - 12:22 AM

Immagine inserita


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:
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ì:
Immagine inserita
Quello che abbiamo fatto,è stato ricreare un evento,uguale ad rpgmaker.
Ma ora,impariamo a creare condizioni con opzioni diverse.
Ecco il codice:
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:
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:
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:
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 è:
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:
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:
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":
print "La variabile ha un valore differente da 10" unless var == 10

Facciamo un confronto tra la condizione if e la condizione unless:
if
if x == 10
 print "è 10"
end
unless
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!
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:
    [*:1mkqqtrh]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.

Immagine inserita
Spoiler

#2 OFFLINE   mark13

mark13

    RM Avanzato

  • Utenti RM
  • StellettaStellettaStelletta
  • 90 Messaggi:
  • Progetto XP:
    La rivoluzione delle bestie
  • Tool:
    rpg maker xp

Inviato 18 May 2010 - 04:40 PM

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***Immagine inseritaImmagine inseritaImmagine inserita

#3 OFFLINE   Ally

Ally

    Fondatori

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

Inviato 18 May 2010 - 06:27 PM

Non ho ben capito =D
Comunque,non è questa la sezione adatta per chiedere eventuale supporto ;)
Immagine inserita
Spoiler




1 utente(i) stanno leggendo questa discussione

0 utenti, 1 ospiti, 0 utenti anonimi