Мне нужно сделать случайный номер (1 и 2) в .lua и изменить это значение каждые 3 секунды.Случайное программирование .lua
У меня есть переменная = randomMode
, это randomMode
придется менять каждые 3 секунды (1 или 2)
Мне нужно сделать случайный номер (1 и 2) в .lua и изменить это значение каждые 3 секунды.Случайное программирование .lua
У меня есть переменная = randomMode
, это randomMode
придется менять каждые 3 секунды (1 или 2)
Вы могли бы попробовать сделать вид таймера, который изменяет значение. Например, основной цикл программы может изменить переменную каждые 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
я не могу использовать "если", потому что между "последним изменением" и «в настоящее время «никогда не будет 3 секунды. Режим всегда будет иметь только один результат. –
@YuriGiles Не уверен, что вы имеете в виду. Функция выше изменяет вывод каждые 3 секунды с помощью этого кода: 'while true print (GetRandomMode()) end'. Я немного изменил код, так как difftime возвратил отрицательный результат. – Rochet2
Добро пожаловать в Stackoverflow. Разделите фрагменты кода, которые вы пробовали. – Daenarys
[PiL] (http://www.lua.org/pil/18.html) –
локальная time1 = os.time() Режим = getmode функция GetMode() локальная time2 = os.time() \t в то время как (time2 - time1> 3) time2 = time1 режим = math.random (1, 2) конец режим возврата конец –