SyntaxGameServer/RCCService2020/ExtraContent/hidden/common/challenge.lua

49 lines
1.2 KiB
Lua

--!nocheck
arg0,arg1 = ...
-- 8 2-input functions
local function x1(a, b) return a + b end
local function x2(a, b) return a - b end
local function x3(a, b) return b - a end
local function x4(a, b) return tonumber(tostring(b%1000) .. tostring(math.abs(a%1000))) end
local function x5(a, b) return tonumber(tostring(b%1337) .. tostring(math.abs(a%1337))) end
local function x6(a, b) return (a % 1000) * (b % 1000) end
local function x7(a, b) return (a % 1337) * (b % 1337) end
local function x8(a, b) return x6(x1(a,b),x2(a,b)) end
-- shuffle list to ensure code must emulate our RNG
local sh = {1,2,3,4,5,6,7,8}
local r = Random.new(5)
for i = 1,32 do
local j = r:NextInteger(1,8)
local k = r:NextInteger(1,8)
local t = sh[j]
sh[j] = sh[k]
sh[k] = t
end
local bf = {}
bf[sh[1]] = x1
bf[sh[2]] = x2
bf[sh[3]] = x3
bf[sh[4]] = x4
bf[sh[5]] = x5
bf[sh[6]] = x6
bf[sh[7]] = x7
bf[sh[8]] = x8
local function x9(a, b)
local acc = 393
local cnt = 1
-- create and iterate over table in a way that iteration order matters.
for i = 1, 16 do
local em = (math.abs(b+acc+cnt) % 8) + 1
local f = bf[em]
acc = (acc + f(acc+a, b)) % 10000000
cnt = cnt + 1
end
return acc
end
return x9(arg0,arg1)