Difference between revisions of "Générer un nombre"

From Base de connaissances eggdrops & TCL
Jump to: navigation, search
Line 3: Line 3:
  
 
Syntaxe :
 
Syntaxe :
 
+
<source lang=tcl>expr {int(rand() * valeur)}</sourcetcl>
[code]    expr {int(rand() * valeur)}[/code]
 
 
 
  
 
valeur doit correspondre systematiquement a un nombre.
 
valeur doit correspondre systematiquement a un nombre.
Line 13: Line 11:
  
 
Exemple :
 
Exemple :
 
+
<source lang=tcl>expr {int(rand() * 11)}</sourcetcl>
    expr {int(rand() * 11)}
 
 
 
  
 
Ce code génèrera un nombre entre 0 et 10.
 
Ce code génèrera un nombre entre 0 et 10.
 
Voyons maintenant des applications de cette fonction :
 
Voyons maintenant des applications de cette fonction :
  
    bind pub - !chance pub:chance
+
<source lang=tcl>bind pub - !chance pub:chance
 
     proc pub:chan {nick host hand chan arg} {
 
     proc pub:chan {nick host hand chan arg} {
 
       set taux [expr {int(rand() * 2)}]
 
       set taux [expr {int(rand() * 2)}]
Line 30: Line 26:
 
           return 0
 
           return 0
 
       }
 
       }
     }
+
     }</sourcetcl>
 
 
  
 
Ce code, vous renvoie quand vous tapez !chance sur un channel ou se trouve votre eggdrop, si vous avez eu de la chance
 
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 a un taux de 50% (en gros, tu as 50% de gagner, 50% de perdre, soit une chance sur deux).
 
Il calcule votre chance a un taux de 50% (en gros, tu as 50% de gagner, 50% de perdre, soit une chance sur deux).
  
    set bonjour {
+
<source lang=tcl>    set bonjour {
 
       {salut ca va}
 
       {salut ca va}
 
       {kikoo toi}
 
       {kikoo toi}
Line 48: Line 43:
 
       puthelp "PRIVMSG $chan :[lindex $bonjour [expr {int(rand() * [llength $bonjour])}]]"
 
       puthelp "PRIVMSG $chan :[lindex $bonjour [expr {int(rand() * [llength $bonjour])}]]"
 
       return 0
 
       return 0
     }
+
     }</sourcetcl>
 
 
  
 
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.
 
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.

Revision as of 22:00, 19 March 2008

Alors avanat tout, je vais vous expliquer a quoi sert de générer un nombre en tcl : Générer un nombre permet de faire des taux de probabilité, de prendre un argument au hasard dans un variable (un nick, un mot ...).

Syntaxe : <source lang=tcl>expr {int(rand() * valeur)}</sourcetcl>

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

Exemple : <source lang=tcl>expr {int(rand() * 11)}</sourcetcl>

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

<source lang=tcl>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
      }
   }</sourcetcl>

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 a un taux de 50% (en gros, tu as 50% de gagner, 50% de perdre, soit une chance sur deux).

<source lang=tcl> 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
   }</sourcetcl>

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.