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

如果我的 if 语句为真时想调用一个随机函数,我该怎么做?

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

if (statement) then
//从上面三个中选择一个随机函数
end
点赞
用户1150918
用户1150918

你考虑过把这些函数放进表里然后从中随机选出一个函数来执行吗?比如像下面这样:

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) --从 1 到 #f_tbl 随机选择一个索引
    f_tbl[random_index]() --执行我们选择的随机索引处的函数
end

-- 准备/填充我们的函数表
local funcs = {a, b, c}

-- 种子伪随机生成器并尝试随机执行函数
-- 重复执行二十次
math.randomseed(os.time())
for i = 0, 20 do
    execute_random(funcs)
end
2016-11-30 15:05:22