88 lines
2.6 KiB
Lua
88 lines
2.6 KiB
Lua
-- This file is always executed first.
|
|
|
|
-- Override Lua's upper and lower functions with our own, which is always UTF-8.
|
|
if Uppercase then
|
|
string.upper = Uppercase
|
|
string.lower = Lowercase
|
|
Uppercase = nil -- don't use directly
|
|
Lowercase = nil -- don't use directly
|
|
end
|
|
|
|
Trace = lua.Trace
|
|
Warn = lua.Warn
|
|
print = Trace
|
|
|
|
-- Use MersenneTwister in place of math.random and math.randomseed.
|
|
if MersenneTwister then
|
|
math.random = MersenneTwister.Random
|
|
math.randomseed = MersenneTwister.Seed
|
|
end
|
|
|
|
PLAYER_1 = "PlayerNumber_P1"
|
|
PLAYER_2 = "PlayerNumber_P2"
|
|
NUM_PLAYERS = #PlayerNumber
|
|
OtherPlayer = { [PLAYER_1] = PLAYER_2, [PLAYER_2] = PLAYER_1 }
|
|
|
|
function string:find_last(text)
|
|
local LastPos = 0
|
|
while true do
|
|
local p = string.find(self, text, LastPos+1, true)
|
|
if not p then
|
|
return LastPos
|
|
end
|
|
LastPos = p
|
|
end
|
|
end
|
|
|
|
-- Round to nearest integer.
|
|
function math.round(n)
|
|
if n > 0 then
|
|
return math.floor(n+0.5)
|
|
else
|
|
return math.ceil(n-0.5)
|
|
end
|
|
end
|
|
|
|
function split(delimiter, text)
|
|
local list = {}
|
|
local pos = 1
|
|
while 1 do
|
|
local first,last = string.find(text, delimiter, pos)
|
|
if first then
|
|
table.insert(list, string.sub(text, pos, first-1))
|
|
pos = last+1
|
|
else
|
|
table.insert(list, string.sub(text, pos))
|
|
break
|
|
end
|
|
end
|
|
return list
|
|
end
|
|
|
|
function join(delimiter, list)
|
|
return table.concat(list, delimiter)
|
|
end
|
|
|
|
-- (c) 2006 Glenn Maynard
|
|
-- All rights reserved.
|
|
--
|
|
-- Permission is hereby granted, free of charge, to any person obtaining a
|
|
-- copy of this software and associated documentation files (the
|
|
-- "Software"), to deal in the Software without restriction, including
|
|
-- without limitation the rights to use, copy, modify, merge, publish,
|
|
-- distribute, and/or sell copies of the Software, and to permit persons to
|
|
-- whom the Software is furnished to do so, provided that the above
|
|
-- copyright notice(s) and this permission notice appear in all copies of
|
|
-- the Software and that both the above copyright notice(s) and this
|
|
-- permission notice appear in supporting documentation.
|
|
--
|
|
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
|
-- THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
|
-- INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
|
-- OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
-- OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
-- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
-- PERFORMANCE OF THIS SOFTWARE.
|