annotate Utility.lua @ 3:a55f4f2a4603 tip

intial (real) commit!
author Kyle@Kyle-PC
date Thu, 23 Feb 2012 00:34:43 -0500
parents
children
rev   line source
Kyle@3 1 --[[
Kyle@3 2 Title: Suicide Kings
Kyle@3 3 Author: Brom
Kyle@3 4 Version: 0.1
Kyle@3 5 ]]
Kyle@3 6
Kyle@3 7 local function RandomCharacter()
Kyle@3 8
Kyle@3 9 -- 0-9, A-Z, a-z = 10 + 26 + 16
Kyle@3 10 local i = math.random(0,61)
Kyle@3 11
Kyle@3 12 -- strip offset and ascii jump
Kyle@3 13 if ( i >= 36 ) then
Kyle@3 14 -- a:z
Kyle@3 15 i = ( i - 36 ) + 97
Kyle@3 16 elseif ( i >= 10 ) then
Kyle@3 17 -- A:Z
Kyle@3 18 i = ( i - 10 ) + 65
Kyle@3 19 else
Kyle@3 20 -- 0:9
Kyle@3 21 i = ( i + 48 )
Kyle@3 22 end
Kyle@3 23
Kyle@3 24 return string.char( i )
Kyle@3 25
Kyle@3 26 end
Kyle@3 27
Kyle@3 28 function SuicideKings:UID( reserved )
Kyle@3 29
Kyle@3 30 -- uid length
Kyle@3 31 -- unique values = 62^4 = 14776336
Kyle@3 32 local length = 4
Kyle@3 33
Kyle@3 34 -- generate a random string
Kyle@3 35 local s = RandomCharacter()
Kyle@3 36 for i = 1, length-1 do
Kyle@3 37 local c = RandomCharacter()
Kyle@3 38 s = s .. c
Kyle@3 39 end
Kyle@3 40
Kyle@3 41 -- if taken, try again
Kyle@3 42 while ( reserved[s] ~= nil ) do
Kyle@3 43 s = SuicideKings:UID( reserved )
Kyle@3 44 end
Kyle@3 45
Kyle@3 46 return s
Kyle@3 47
Kyle@3 48 end