2011-09-05 109 views
0

如果我創建一個簡單的lua腳本文件:
test.lua如何覆蓋已編譯(?)腳本?

#!/usr/bin/env lua 

local var = math.random(100) 
print(var) 

它總是打印相同的值調用時,即使它真的應該在每次調用一個新的隨機值。
我的猜測是,腳本被編譯爲例子(?):

#!/usr/bin/env lua 

local var = 82 
print(var) 

(如果82是在第一次通話的隨機值)

我能做些什麼,使確保每次調用腳本時都會編譯一個新的(?)字節碼(?),以便在每次執行腳本時都可以獲得新的隨機值?

我添加的原因(?)是,我甚至不知道,如果腳本得到根本編譯或會發生什麼情況他們被調用時,但這樣的事情顯然發生,因爲我得到的相同的價值。

回答

6

你的腳本不是保存爲字節碼,而是每次運行時都使用相同的默認隨機種子。這就產生了你看到的效果:每次運行腳本時都會得到相同的「隨機」序列。

你應該做初始化,例如

math.randomseed(os.time()) 
+0

啊哈,非常感謝你的是回答我所有的問題 – Michelrandahl