Minecraft Wiki
Advertisement

Код, необходимый для работы шаблона {{А вы знали}}. Все факты хранятся и могут быть добавлены на странице Модуль:А вы знали/Факты.

local p = {}
local facts = require("Модуль:А вы знали/Факты")

function p.getFacts()
	local s = ""
	local length = #facts.facts
	-- Каждый день генерируется разное значение зерна (отображает один и тот же набор фактов в течение дня, затем другой набор на следующий день и т. д.).
	math.randomseed(math.floor(os.time()/(60*60*24)))
	
	-- Следует убедиться, что повторяющиеся факты не отображаются.
	local chosen = {}
	while #chosen < 5 do
		local random = math.random(1, length)
		local isPresent = false
		
		for i, v in ipairs(chosen) do
			if v == random then
				isPresent = true
				break
			end
		end
		
		if not isPresent then
			table.insert(chosen, random)
		end
	end
	
	-- Теперь действительно можно написать вывод.
	local result = {}
	for i, v in ipairs(chosen) do
		result[i] = "* ... что " .. facts.facts[v] .. "?"
	end
	return table.concat(result, "\n")
end

-- Список всех фактов. Предназначен для облегчения отладки.
function p.getAllFacts()
	local result = {}
	local length = #facts.facts
	
	for i = 1, length do
		result[i] = "* ... что " .. facts.facts[i] .. "?"
	end
	return table.concat(result, "\n")
end

return p
Advertisement