Private sub form1_load
dim s as integer
s=int(rnd*10)
text1.text=s
end sub
每次执行以上代码时,S的第一次总是为7,当然,如果添加一个FOR循环的话
S是随机变化的。但只要一执行,S的第一次总是为7,而不会为其他数!
我正在做一个游戏,类似五子棋,需要在随机位置弹出随机颜色的彩球
让我郁闷的是,每次打开游戏,总是在同一位置弹出同一颜色的球
不知各位有没办法?
dim s as integer
s=int(rnd*10)
text1.text=s
end sub
每次执行以上代码时,S的第一次总是为7,当然,如果添加一个FOR循环的话
S是随机变化的。但只要一执行,S的第一次总是为7,而不会为其他数!
我正在做一个游戏,类似五子棋,需要在随机位置弹出随机颜色的彩球
让我郁闷的是,每次打开游戏,总是在同一位置弹出同一颜色的球
不知各位有没办法?
randomize '在rnd之前加上这句
dim s as integer
s=int(rnd*10)
text1.text=s
end sub
Randomize Timer
s = Int(Rnd * 10)
Text1.Text = CStr(s)
要弄清楚为什么这样必须了解Rnd的基本用法:
对任何给定的初始种子,产生相同数值序列,因为对Rnd函数的每个后续调用均使 用前面的数作为序列中下一个数的种子。在调用Rnd之前,利用没有参数的 Randomize语句, 以系统时间为基准提供随机种子去初始化随机数生成器。
为了在给定范围内产生随机整数,使用下列公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound是该范围的最大数值,lowerbound是该范围的最小数值。
小于 0 每次都使用 number 作为随机数种子得到的相同结果。
大于 0 序列中的下一个随机数。
等于 0 最近生成的数。
省略 序列中的下一个随机数。
Randomize Timer
s = Int(Rnd * 10)+1'习惯点
Text1.Text = CStr(s)
确定性的算法必然产生确定性的绝过
Randomize 语句
初始化随机数生成器。语法Randomize [number]可选的 number 参数是 Variant 或任何有效的数值表达式。说明Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。