Moduł:Matma
Z Nonsensopedii, polskiej encyklopedii humoru
local p = {}
-- zwraca losową liczbę
p.rand = function(f)
local min = tonumber(f.args["min"])
local max = tonumber(f.args["max"])
local seed = f.args["seed"]
if seed ~= nil or seed ~= "" then
local n = tonumber(seed)
if n ~= nil then math.randomseed(n) end
else
math.randomseed(os.time())
end
if min == nil then min = 0 end
if max ~= nil then
if min > max then min, max = max, min end
return math.random(min, max)
end
return math.random()
end
-- Zwraca losowy element z przekazanej listy
-- Przyjmuje argumenty:
-- 1 - lista rzeczy do losowania, rozdzielona jakimś separatorem
-- 2 - separator, domyślnie #
p.chooseRandom = function(frame)
return p._chooseRandom(frame.args[1] or '', frame.args[2] or '#')
end
-- To samo, ale do użycia w Lua
p._chooseRandom = function(text, sep)
local split = mw.text.split(text, sep or '#', true)
local valid = {}
for i, v in ipairs(split) do
local s = mw.text.trim(v)
if s ~= '' then
table.insert(valid, s)
end
end
if #valid == 0 then return '' end
math.randomseed(os.time())
return valid[math.random(#valid)]
end
return p