Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function clone(table)
- local ntable = {}
- for k,v in pairs(table) do
- ntable[k] = v
- end
- return ntable
- end
- function getSize(table)
- local size = 0
- for k,v in pairs(table) do
- if v ~= nil then size = size + 1 end
- end
- return size
- end
- function arrangeInDistance(point)
- local dps = {}
- local cpoints = clone(points)
- while getSize(cpoints) > 0 do
- local index = 1
- local minDist = nil
- for i,p in pairs(cpoints) do
- if p ~= point and p ~= nil then
- local distX = p.x-point.x
- if distX < 0 then distX = distX*-1 end
- local distY = p.y-point.y
- if distY < 0 then distY = distY*-1 end
- local dist = distX+distY
- if minDist == nil then
- minDist = dist
- index = i
- elseif dist < minDist then
- minDist = dist
- index = i
- end
- end
- end
- dps[#dps + 1] = cpoints[index]
- cpoints[index] = nil
- end
- return dps
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement