Lua math.random не работает - программирование

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, есть ли что-то, что мне не хватает?

4b9b3361

Ответ 1

Вам нужно запустить math.randomseed() один раз перед использованием math.random(), например:

math.randomseed(os.time())

Одна из возможных проблем заключается в том, что первое число не может быть "рандомизировано" на некоторых платформах. Таким образом, лучшим решением является выбор случайного числа, прежде чем использовать его для реального:

math.randomseed(os.time())
math.random(); math.random(); math.random()

Ссылка: Библиотека Lua Math