Lua math.random не работает
Итак, я пытаюсь создать что-то, и я повсюду искал способы генерации случайного числа. Однако независимо от того, где я тестирую свой код, это приводит к неслучайному числу. Вот пример, который я написал.
local lowdrops = {"Wooden Sword","Wooden Bow","Ion Thruster Machine Gun Blaster"}
local meddrops = {}
local highdrops = {}
function randomLoot(lootCategory)
if lootCategory == low then
print(lowdrops[math.random(3)])
end
if lootCategory == medium then
end
if lootCategory == high then
end
end
randomLoot(low)
Где бы я не тестировал свой код, я получаю тот же результат. Например, когда я тестирую код здесь http://www.lua.org/cgi-bin/demo, он всегда заканчивается "Ионным пулеметным пулеметным бластером" и не рандомизируется. В этом случае тестирование просто
random = math.random (10)
print(random)
дает мне 9, есть ли что-то, что мне не хватает?
Ответы
Ответ 1
Вам нужно запустить math.randomseed()
один раз перед использованием math.random()
, например:
math.randomseed(os.time())
Одна из возможных проблем заключается в том, что первое число не может быть "рандомизировано" на некоторых платформах. Таким образом, лучшим решением является выбор случайного числа, прежде чем использовать его для реального:
math.randomseed(os.time())
math.random(); math.random(); math.random()
Ссылка: Библиотека Lua Math