跳到内容

BASIC 编程/随机数生成

来自维基教科书,开放的书籍,开放的世界

游戏的一个有用功能是随机数。这是一个看起来随机分布的数字序列,因此可用于模拟诸如洗牌或在程序每次运行时产生不同行为之类的事件。

BASIC 中的随机数由RND函数生成。它返回一个介于 0 和 1 之间的数字。例如

PRINT "Wikibooks' coolness quotient: ", RND, "%"

你将获得“维基教科书的酷炫指数:.7055475%”。

该结果看起来很随机。再次运行它,你得到了相同的值!这会让游戏很无聊。这就是播种的目的,通常用RANDOMIZE语句完成。在现代方言中,这可以使用TIMER关键字与时钟绑定

RANDOMIZE TIMER
PRINT "Wikibooks' coolness quotient: ", RND, "%"

这将打印“维基教科书的酷炫指数:.8532526%”,而另一次则会打印“维基教科书的酷炫指数:.3582422%”。更好,对吧?

但是小数并不总是很有用。如果你想要一个整数,你必须获得一个随机数,然后将其转换为整数。通常你希望该数字在两个限制之间,比如 0 和 100。一个解决方案是取该数字,乘以最大期望值,加上一半将其四舍五入,然后取整数部分。以下代码的某些细微变化非常常见

PER = INT(RND() * 99 + 0.5)

像 QBASIC 这样的现代方言提供了更多控制。我们可以声明该变量是一个整数,BASIC 将强制它使用该格式并稍微简化代码

RANDOMIZE TIMER
DIM PER AS INTEGER
PER = RND * 100 + 0.5
PRINT "Wikibooks' coolness quotient: ", PER, "%"

这将打印“维基教科书的酷炫指数:85%”。

华夏公益教科书