因此,我正在尝试创建一些东西,并且我到处都在寻找生成随机数的方法。但是,无论我在哪里测试我的代码,它都会产生一个非随机数。这是我写的一个例子。

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,我有什么想念的吗?

最佳答案

使用math.randomseed()之前,您需要运行一次math.random(),如下所示:

math.randomseed(os.time())


一个可能的问题是,在某些平台上,第一个数字可能不会如此“随机化”。因此,更好的解决方案是在将随机数用于实数之前先弹出一些随机数:

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


参考:Lua Math Library

10-07 19:37
查看更多