Générer un nombre

From Base de connaissances eggdrops & TCL
Jump to: navigation, search

Pour commencer, nous allons nous poser la question "A quoi peut servir de générer un nombre ?". Cette question peut vraiment parraître conne, enfin bon, chacun son point de vue. Générer un nombre permet de crée des probabilités, des jeux de chances ... ou autre délire du genre.

Syntaxe :

expr {int(rand() * valeur)}

valeur doit correspondre systematiquement a un nombre.

En gros, il génère un nombre entre 0 et valeur "- 1".

Etrange non ? Et bien oui ! (le nombre) que vous mettrez, il génèrera un nombre entre 0 et ce nombre soustrait de la valeur 1.

Exemple :

expr {int(rand() * 11)}

Ce code génèrera un nombre entre 0 et 10. Voyons maintenant des applications de cette fonction :

bind pub - !chance pub:chance
proc pub:chan {nick host hand chan arg} {
   set taux [expr {int(rand() * 2)}]
   if { $taux == 0 } {
      puthelp "NOTICE $nick :Malheuresement, vous n'avez pas de chance"
      return 0
   } else {
      puthelp "NOTICE $nick :Bravo ! Vous avez eu de la chance !"
      return 0
   }
}

Ce code, vous renvoie quand vous tapez !chance sur un channel (ou se trouve votre eggdrop), si vous avez eu de la chance. Il calcule votre chance le tout a un taux de 50% (en gros, tu as 50% de gagner, 50% de perdre, soit une chance sur deux).

set bonjour {
   {salut ca va}
   {kikoo toi}
   {la forme ?}
   {bienvenue a toi !}
   {je vous aime fort !}
}
bind pub - bonjour pub:bonjour
pub:bonjour {nick host hand chan arg} {
   global bonjour
   puthelp "PRIVMSG $chan :[lindex $bonjour [expr {int(rand() * [llength $bonjour])}]]"
   return 0
}

Ce code tcl renvéra une phrase au hasard définite dans la variable bonjour de votre tcl lorsque vous tapez "bonjour" sur un salon ou ce trouve votre eggdrop.