DoctorD90 icon

RRand.tcl

DoctorD90 | PRO | 04/19/13 11:37:28 AM UTC | 0 ⭐ | 6127 👁️ | Never ⏰ | []
TCL |

1.9 KB

|

None

|

0 👍

/

0 👎

### RRand.tcl 3.3.2 pQFrdM8L
 
#REQUIREMENTS
# PBinScr.tcl fMrtKqyq
 
#LICENSE
# Copyright © 2013 Alberto Dietze "DoctorD90"
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Full GPLv3 Text: http://www.gnu.org/licenses/gpl.txt
 
#PATERNITY
#Coder: DoctorD90
#Network: irc.OnlineGamesNet.net
#Chan: #eHito
#Mail: [email protected]
#
#Thanks to guys on #egghelp on irc.freenode.net
 
#PURPOSE
# With this proc, it'll be simplier randomize
#a number in an interval between 2 of them
# of your choice.
#WARN: This script does not work as normal rand
#      command! Extreme will be incorporated in
#      numbers range.
 
#USAGE
#set var [rrand a ?b?]
#  a  InferiorLimit
#  b  SuperiorLimit
#If b is not setted, it will be assumed as 0
 
 
### DON'T EDIT ANYTHING BELOW ###
 
proc rrand {inf {sup {}}} {
  if {![string is integer -strict $inf]} {
    error "\002$inf\002 Must Be A Number"
  }
  if {![string length $sup]} {
    set sup 0
  }
  if {![string is integer -strict $sup]} {
    error "\002$sup\002 Must Be A Number"
  }
  if {$inf == $sup} {
    return $inf
  }
  if {$inf > $sup} {
    set infb $inf
    set inf $sup
    set sup $infb
  }
  set gap [expr {$sup - $inf + 1}]
  return [expr {int(rand() * $gap) + $inf}]
}
 
###
putlog "RRand.tcl LOADED"

Comments