2015-11-18 36 views
-1

我必須在.lua中創建一個隨機數(1和2),並每3秒更改一次該值。.lua編程中的隨機問題

我有一個變量= randomMode,這randomMode必須改變每3秒(1或2)

+1

歡迎使用Stackoverflow。分享您嘗試過的代碼片段。 – Daenarys

+0

[PIL](http://www.lua.org/pil/18.html) –

+0

本地TIME1 = os.time() 模式=獲取模式 函數獲取模式() 本地TIME2 = os.time() \t而(TIME2 - 時間1> 3) TIME2 = TIME1 模式=的Math.random(1,2) 端 返回模式 端 –

回答

0

你可以嘗試製作一種計時器的改變值。例如,主程序循環可以通過使用時間戳每3秒更改一次變量。

如果你不能使用一個好的方法來實現一個定時器,也許只是檢查時間戳,因爲上次調用是足夠好的。例如,如果超過3秒鐘,該功能將每次呼叫的號碼隨機化爲GetRandomMode

local lastChange = os.time() 
local mode = math.random(1, 2) 
function GetRandomMode() 
    local now = os.time() 
    if os.difftime(now, lastChange) > 3 then 
     lastChange = now 
     mode = math.random(1, 2) 
    end 
    return mode 
end 
+0

我不能使用的 「if」,因爲 「最後變化」 和「現在之間「永遠不會有3秒鐘。該模式將始終只有一個結果。 –

+0

@YuriGiles不知道你的意思。 上面的函數使用下面的代碼每3秒更改一次輸出:'while true true print(GetRandomMode())end'。我剛剛編輯了代碼,因爲difftime返回了負面結果。 – Rochet2