2015-11-18 2 views
-1

Мне нужно сделать случайный номер (1 и 2) в .lua и изменить это значение каждые 3 секунды.Случайное программирование .lua

У меня есть переменная = randomMode, это randomMode придется менять каждые 3 секунды (1 или 2)

+1

Добро пожаловать в Stackoverflow. Разделите фрагменты кода, которые вы пробовали. – Daenarys

+0

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

+0

локальная time1 = os.time() Режим = getmode функция GetMode() локальная time2 = os.time() \t в то время как (time2 - time1> 3) time2 = time1 режим = math.random (1, 2) конец режим возврата конец –

ответ

0

Вы могли бы попробовать сделать вид таймера, который изменяет значение. Например, основной цикл программы может изменить переменную каждые 3 секунды, используя метки времени.

Если вы не можете использовать хороший способ реализации таймера, возможно, просто проверяете отметки времени, поскольку последний звонок достаточно хорош. Например, эта функция рандомизирует число при каждом вызове до GetRandomMode, если прошло более 3 секунд:

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

я не могу использовать "если", потому что между "последним изменением" и «в настоящее время «никогда не будет 3 секунды. Режим всегда будет иметь только один результат. –

+0

@YuriGiles Не уверен, что вы имеете в виду. Функция выше изменяет вывод каждые 3 секунды с помощью этого кода: 'while true print (GetRandomMode()) end'. Я немного изменил код, так как difftime возвратил отрицательный результат. – Rochet2

Смежные вопросы