Le booléen, pas évident à dire ça, cependant c'est assez simple à expliquer. Vous en utilisez pratiquement tout le temps dans les events, il s'agit des Switch ou interrupteur.
Le booléen est un type de variable le plus élémentaire, car il n'a que 2 états , soit Vrai soit Faux. Les interrupteurs utilisés dans les commandes événementielles, sont définis dans un tableau de booléens, se nommant :
Code |
$game_switches |
Le plus simple pour imaginer le fonctionnement d'un booléen, est le fonctionnement d'un interrupteur, pour une lampe par exemple. Mais attention, ne pas confondre l'état de l'interrupteur (ON,OFF) et le résultat (Allumé, éteint), car dans vos couloir, il ya plusieurs interrupteurs pour une même lampe, certains sont ON d'autre OFF, et pourtant la lampe, n'est pas forcément éteinte ou allumée.
En Ruby, les valeurs d'un booléen sont true ou false (Vrai ou faux)
Le type booléen est dans le principe quelque chose de très simple, du point de vue variable. Hors son utilisation peut s'avérer parfois complexe, car il permet de répondre à des conditions. Toutes les comparaison de valeurs amène à un résultat booléen :
Par exemple : j'ai un sac contenant 4 pommes et 2 bières.
Une personne me dit : tu as exactement 3 pommes dans ton sac.
Je lui réponds : Faux
Une personne me dit : tu as plus de 3 pommes dans ton sac.
Je lui réponds : Vrai
Une personne me dit : Tu as exactement 3 pommes et exactement 2 bières.
Je lui réponds : Faux
Une personne me dit : Tu as exactement 3 pommes ou exactement 2 bières.
Je lui réponds : Vrai
Maintenant les mêmes exemples en Ruby :
(Ruby) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
def comparaison1
iNbPomme = 4 iNbBierre = 2 bResultat = iNbPomme == 3 # bResultat contient false end def comparaison2 iNbPomme = 4 iNbBierre = 2 bResultat = iNbPomme > 3 # bResultat contient true end def comparaison3 iNbPomme = 4 iNbBierre = 2 bResultat = iNbPomme == 3 and iNbBierre == 2 # bResultat contient false end def comparaison4 iNbPomme = 4 iNbBierre = 2 bResultat = iNbPomme == 3 or iNbBierre == 2 # bResultat contient true end |
Peut-être que certains sont déjà largué, je vais donc vous expliquez les opérateurs logiques (==, , or, and,...). Ces opérateurs permettent de faire des calculs sur des variables et d'en ressortir un résultat booléen :
X > Y sera égale à true si X est supérieur à Y, et false si ce n'est pas le cas. C'est le même fonctionnement pour les comparaison de valeur.
/!\ Attention, une très grande source d'erreur réside dans le == souvent remplacé par inadvertance par =, ce qui au lieu de faire une comparaison, provoque une affectation.
Les comparateurs :
== : égale
!= : différent
< : Strictement inférieur
<= : Inférieur ou égale
> : Strictement Supérieur
>= : Supérieur ou égale
Les tables opérateurs :
- and
'false and false' donne false
'false and true' donne false
'true and false' donne false
'true and true' donne true
- or
'false or false' donne false
'false or true' donne true
'true or false' donne true
'true or true' donne true
- xor
'false xor false' donne false
'false xor true' donne true
'true xor false' donne true
'true xor true' donne false
- not (!)
'not false' donne true
'not true' donne false
- ? :
'true ? X : Y' donne X
'false ? X : Y' donne Y
Avec ceci, vous avez l'ensemble des possibilités de calcul en booléen, mais je vais mettre quelques exemples supplémentaires, pour plus de clarté.
(Ruby) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
def exemple1
iNbPomme = 5 iNbSirop = 6 iNbVerre = 4 bResultat = iNbSirop > iNbVerre # bResultat contient true end def exemple2 iNbPomme = 5 iNbSirop = 6 iNbVerre = 4 bResultat = iNbSirop > 4 and iNbVerre > 4 # bResultat contient false, car true and false donne false end def exemple3 iNbPomme = 5 iNbSirop = 6 iNbVerre = 4 bResultat = iNbSirop > 4 or iNbVerre > 4 # bResultat contient true, car true or false donne true end def exemple4 iNbPomme = 5 iNbSirop = 6 iNbVerre = 4 bResultat = ( iNbSirop > iNbVerre ? iNbPomme : 0 ) # bResultat contient 5 end |
Si il ya des questions, il ne faut pas hésiter à les poser.