Difference between revisions of "Générer un nombre"
Line 3: | Line 3: | ||
Syntaxe : | Syntaxe : | ||
− | + | <source lang=tcl>expr {int(rand() * valeur)}</sourcetcl> | |
− | |||
− | |||
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> | |
− | |||
− | |||
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 : | ||
− | + | <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). | ||
− | + | <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.