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

From Base de connaissances eggdrops & TCL
Jump to: navigation, search
Line 11: Line 11:
  
 
Exemple :
 
Exemple :
<source lang=tcl>expr {int(rand() * 11)}</sourcetcl>
+
<source lang=tcl>expr {int(rand() * 11)}</source>
  
 
Ce code génèrera un nombre entre 0 et 10.
 
Ce code génèrera un nombre entre 0 et 10.
Line 26: Line 26:
 
           return 0
 
           return 0
 
       }
 
       }
     }</sourcetcl>
+
     }</source>
  
 
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
Line 43: 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>
+
     }</source>
  
 
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:01, 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 :

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

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 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.