如何在lua中调用随机函数?

时间:2016-11-30 14:53:51

标签: lua corona

如果我想在if语句为真时调用随机函数,该怎么办?

local function move() end
local function move2() end
local function move3() end

if (statement) then
//make it choose a random function from the three which are above
end

1 个答案:

答案 0 :(得分:5)

您是否考虑过将这些功能放在表格中并为要执行的功能选择随机索引?例如以下内容:

local math = require("math")

function a()
    print("a")
end

function b()
    print("b")
end

function c()
    print("c")
end

function execute_random(f_tbl)
    local random_index = math.random(1, #f_tbl) --pick random index from 1 to #f_tbl
    f_tbl[random_index]() --execute function at the random_index we've picked
end

-- prepare/fill our function table
local funcs = {a, b, c}

-- seed the pseudo-random generator and try executing random function
-- couple of tens of times
math.randomseed(os.time())
for i = 0, 20 do
    execute_random(funcs)
end