「ノート:Tournament」の版間の差分

提供: Wikiducca
移動: 案内検索
(未完成です。)
 
(1版)
 
(2人の利用者による、間の31版が非表示)
行1: 行1:
local p = {}
+
--[[category:唯一の編集者により削除が依頼されているページ]]
 
+
function p.main(frame)
+
local args = frame.args
+
local team = {}
+
local nRow = { [0] = {} }
+
local line = {}
+
+
local i = 1
+
while args[i] ~= "result" do
+
team[i] = args[i]
+
nRow[0][i] = 1
+
i = i + 1
+
end
+
local nTeam = i - 1
+
i = i + 1
+
+
local round = 1
+
local curr = 1
+
local prev = 1
+
local row = 0
+
nRow[1] = {}
+
while args[i] ~= nil do
+
if args[i] == "bye" then
+
nRow[round][curr]  = nRow[round-1][prev]
+
nRow[round][curr+1] = nRow[round-1][prev+1]
+
prev = prev + 2
+
i = i + 1
+
else
+
if nRow[round-1][prev+2] == nil then break end
+
local prev1 = nRow[round-1][prev+1]
+
local prev2 = nRow[round-1][prev+2]
+
local curr1
+
if prev1 > prev2 then
+
curr1 = (prev1 + prev2 + (curr1 % 2)) / 2
+
else
+
curr1 = (prev1 + prev2 - (curr1 % 2)) / 2
+
end
+
local curr2 = (prev1 + prev2) - curr1
+
nRow[round][curr]  = nRow[round-1][prev]  + curr1
+
nRow[round][curr+1] = nRow[round-1][prev+3] + curr2
+
prev = prev + 4
+
i = i + 4
+
end
+
row = row + nRow[round][curr] + nRow[round][curr+1]
+
if row == nTeam then
+
round = round + 1
+
curr = 1
+
prev = 1
+
row = 0
+
nRow[round] = {}
+
else
+
curr = curr + 2
+
end
+
end
+
 
+
return ""
+
end
+
 
+
return p
+

2019年2月5日 (火) 22:02時点における最新版

--