跳到內容

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%”。

華夏公益教科書