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

From Base de connaissances eggdrops & TCL
Jump to: navigation, search
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
Alors avanat tout, je vais vous expliquer a quoi sert de générer un nombre en tcl :
+
[[Catégorie:Astuces]]
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 ...).
+
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 :
+
'''Syntaxe :'''
<source lang=tcl>expr {int(rand() * valeur)} </sourcetcl>
+
<source lang=tcl>expr {int(rand() * valeur)} </source>
 +
<i>valeur</i> doit correspondre systematiquement a un nombre.
  
valeur doit correspondre systematiquement a un nombre.
+
En gros, il génère un nombre entre 0 et valeur "- 1".
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 :
+
<u>Etrange non ?</u>
<source lang=tcl>expr {int(rand() * 11)}</sourcetcl>
+
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 :'''
 +
<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 17: Line 20:
  
 
<source lang=tcl>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)}]
      if { $taux == 0 } {
+
  if { $taux == 0 } {
          puthelp "NOTICE $nick :Malheuresement, vous n'avez pas de chance"
+
      puthelp "NOTICE $nick :Malheuresement, vous n'avez pas de chance"
          return 0
+
      return 0
      } else {
+
  } else {
          puthelp "NOTICE $nick :Bravo ! Vous avez eu de la chance !"
+
      puthelp "NOTICE $nick :Bravo ! Vous avez eu de la chance !"
          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 <u>!chance</u> 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 le tout 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 {
+
<source lang=tcl>set bonjour {
      {salut ca va}
+
  {salut ca va}
      {kikoo toi}
+
  {kikoo toi}
      {la forme ?}
+
  {la forme ?}
      {bienvenue a toi !}
+
  {bienvenue a toi !}
      {je vous aime fort !}
+
  {je vous aime fort !}
    }
+
}
    bind pub - bonjour pub:bonjour
+
bind pub - bonjour pub:bonjour
    pub:bonjour {nick host hand chan arg} {
+
pub:bonjour {nick host hand chan arg} {
      global bonjour
+
  global bonjour
      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 <i>bonjour</i> de votre tcl lorsque vous tapez "bonjour" sur un salon ou ce trouve votre eggdrop.

Latest revision as of 22:17, 25 October 2020

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.