Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Les actualités de fin d'année / Jeux: Glixel en version complète / Jeux: Izac 1 / News: Des jeux d'hiver sous la couette / Scripts: Système de vol pour RPG Maker (...) / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

270 connectés actuellement

30832134 visiteurs
depuis l'ouverture

3622 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Le Temple de Valor

Leo-Games

Tous nos partenaires

Devenir
partenaire



Les conditions en Ruby

Présentation des différentes conditions possibles en Ruby

Ecrit par Denzel Lockheart$ le 30/01/2010


Dans ce tuto, je vous présenterai comment fonctionne les conditions en Ruby. Pour commencer, je tiens à vous présenter les
principaux branchements conditionnels. Plus tard, je vous montrerai les autres types de conditions possibles en Ruby.



I) Les branchements conditionnels et les conditions simples

1) if-then

C'est le branchement conditionnel le plus simple à connaître lorsqu'un seul cas est traîté.

Portion de code : Tout sélectionner

1
2
3
if <condition>
  then <expression>
end     



2) if-then-else

Celui-ci permet de traiter deux cas opposés, tout simplement.

Portion de code : Tout sélectionner

1
2
3
4
5
if <condition>
  then <expression_si_vrai>
else
  <expression_si_faux>  
end



3) if-then-else

Ce branchement permet non seulement de traiter les deux cas opposés, mais également autant d'autres cas que possible.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
if <condition>
  then <expression_si_vrai>
elsif <autre_condition>
  <expression_liée>     
else
  <expression_si_faux>  
end



4) Avec un exemple concret

Voici un exemple concret concernant ces trois types de branchement. On va imaginer que l'on veuille acheter un article à 25 €
dans un magasin et que tout dépend de l'argent possédé dans le porte-monnaie.

On va tout d'abord se baser sur le fait que l'on puisse acheter l'article.

Portion de code : Tout sélectionner

1
2
3
4
if argent>=25
        then puts "Vous avez eu pour 25 € d'achat."
end
 


Maintenant, on imagine que l'on puisse ne pas avoir la somme d'argent souhaitée.

Portion de code : Tout sélectionner

1
2
3
4
5
6
if argent>=25
        then puts "Vous avez eu pour 25 € d'achat."
else
        puts "Vous n'avez pas assez !"  
end 
 


Et enfin, on vérifie que l'on puisse avoir une somme d'argent réaliste, c'est-à-dire non négative.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
if argent>=25
        then puts "Vous avez eu pour 25 € d'achat."
elsif argent<0
        argent = 0      
else
        puts "Vous n'avez pas assez !"  
end     
 


Je vous montre d'autres exemples pour bien comprendre.

5) Avec les booléens


On va se baser sur les phases jour/nuit sous forme de booléens. Simple, non ?

Portion de code : Tout sélectionner

1
2
3
4
5
if jour == true
        puts "C'est le jour !"
else
        puts "C'est la nuit !"  
end



6) Avec les chaines de caractères

Ensuite, on imagine que l'on doive avoir un nom spécifique pour qu'il se passe quelque chose de spécial.

Portion de code : Tout sélectionner

1
2
3
4
5
if nom == "Link"
        then puts "Vous êtes le sauveur d'Hyrule !"
else 
        puts "Vous êtes peut-être un autre héros, on ne sait jamais !"  
end     



7) La condition ternaire

L'opérateur ? permet de faire une condition très simple de type if-then-else sur une seule ligne. Voici sa forme
générale :

Portion de code : Tout sélectionner

1
condition ? si_vrai : si_faux



Avec nos deux phases jour/nuit, on pourrait avoir :

Portion de code : Tout sélectionner

1
jour == true ? "Jour" : "Nuit"



8) Le branchement conditionnel unless-else

Il permet de faire un équivalent négatif du branchement if-then-else.

Portion de code : Tout sélectionner

1
2
3
4
5
unless condition
        <expression_si_faux>
else
        <expression_si_vrai>
end



On va donner un exemple simple avec un nom reconnu.

Portion de code : Tout sélectionner

1
2
3
4
5
unless nom == "Ganondorf"
        puts "Vous êtes à priori un gentilhomme !"
else
        puts "Vous êtes le Seigneur du Malin !" 
end     



9) Avec les opérateurs logiques

Si vous avez bien compris l'utilité des opérateurs logiques, voici leur exemple d'utilisation pour vous donner une idée.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
if not (x!=0)
        then puts "x vaut zéro !"
end
 
if      x>=20 and x<=50
        then puts "x est entre 20 et 50."
end     
 
if x<0 or x>0
        then puts "x est négatif ou positif !"
end





II) Les conditions multiples

Il existe un moyen de faire ce qu'on appelle des conditions multiples de type case-when qui permettent d'éviter les répétitions
du mot elsif dans une condition simple. On peut s'en servir avec une unique valeur, plusieurs et aussi un intervalle.

Voici son concept fondamental :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
case var 
        when cas_1 
                <expression_cas_1>
        when cas_2      
                <expression_cas_2>
        when cas_n      
                <expression_cas_n>      
        else
                <expression_cas_par_defaut>
end     



Je vais vous donner l'exemple classique des notes pour que vous découvrez les possibilités des clauses conditionnelles.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
note = 10
case note
        when 0
                puts "Tout est à refaire !"
        when 1 .. 6
                puts "Pas terrible !"
        when 7,8,9
                puts "Ce n'est pas encore la moyenne, mais perséverez !"
        when 10 
                puts "Pile la moyenne ! Ouf !"
        when 11,12,13 
                puts "C'est déjà pas mal !"
        when 14 .. 16
                puts "C'est bien !"
        when 17 .. 19
                puts "C'est très bien !"
        when 20
                puts "C'est excellent !"
        else
                puts "Note incorrecte !"
end     




Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers