Cleaned some code, added comments
This commit is contained in:
		
							parent
							
								
									b80297c45f
								
							
						
					
					
						commit
						9fd3208aaf
					
				
							
								
								
									
										70
									
								
								main.lua
									
									
									
									
									
								
							
							
						
						
									
										70
									
								
								main.lua
									
									
									
									
									
								
							| 
						 | 
					@ -43,7 +43,7 @@ end
 | 
				
			||||||
function slice(tbl, first, last, step)
 | 
					function slice(tbl, first, last, step)
 | 
				
			||||||
	local sliced = {}
 | 
						local sliced = {}
 | 
				
			||||||
	for i = (first or 1), (last or #tbl), (step or 1) do
 | 
						for i = (first or 1), (last or #tbl), (step or 1) do
 | 
				
			||||||
		sliced[(#sliced + 1)] = tbl[i]
 | 
							sliced[#sliced + 1] = tbl[i]
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	return sliced
 | 
						return sliced
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					@ -53,16 +53,22 @@ function rectfill(x, y, w, h, col)
 | 
				
			||||||
	_rectfill(x, y, x+w, y+h, col)
 | 
						_rectfill(x, y, x+w, y+h, col)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local _count = count
 | 
					--
 | 
				
			||||||
function count(tbl, p)
 | 
					-- Overrides count() to accept a callback
 | 
				
			||||||
	if type(p) != "function" then return _count(tbl, p) end
 | 
					--
 | 
				
			||||||
	local c = 0
 | 
					-- local _count = count
 | 
				
			||||||
	for v in all(tbl) do
 | 
					-- function count(tbl, p)
 | 
				
			||||||
		if p(v) then c+=1 end
 | 
					-- 	if type(p) != "function" then return _count(tbl, p) end
 | 
				
			||||||
	end
 | 
					-- 	local c = 0
 | 
				
			||||||
	return c
 | 
					-- 	for v in all(tbl) do
 | 
				
			||||||
end
 | 
					-- 		if p(v) then c+=1 end
 | 
				
			||||||
 | 
					-- 	end
 | 
				
			||||||
 | 
					-- 	return c
 | 
				
			||||||
 | 
					-- end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- Returns the indices of found occurences of `o` within `tbl`
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
function find(tbl, o)
 | 
					function find(tbl, o)
 | 
				
			||||||
	local indices = {}
 | 
						local indices = {}
 | 
				
			||||||
	for k,v in ipairs(tbl) do
 | 
						for k,v in ipairs(tbl) do
 | 
				
			||||||
| 
						 | 
					@ -71,14 +77,16 @@ function find(tbl, o)
 | 
				
			||||||
	return indices
 | 
						return indices
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- shallow copy
 | 
					--
 | 
				
			||||||
 | 
					-- Makes a shallow table copy
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
function copy(tbl)
 | 
					function copy(tbl)
 | 
				
			||||||
	local copy = {}
 | 
						return map(tbl, function (o) return o end)
 | 
				
			||||||
	for v in all(tbl) do add(copy, v) end
 | 
					 | 
				
			||||||
	return copy
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- shallow equality
 | 
					--
 | 
				
			||||||
 | 
					-- Table equality - shallow comparison
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
function equal(tbl1, tbl2)
 | 
					function equal(tbl1, tbl2)
 | 
				
			||||||
	for k, _ in ipairs(tbl1) do
 | 
						for k, _ in ipairs(tbl1) do
 | 
				
			||||||
		if tbl1[k] ~= tbl2[k] then return false end
 | 
							if tbl1[k] ~= tbl2[k] then return false end
 | 
				
			||||||
| 
						 | 
					@ -86,15 +94,15 @@ function equal(tbl1, tbl2)
 | 
				
			||||||
	return true
 | 
						return true
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function tostring(any)
 | 
					-- function tostring(any)
 | 
				
			||||||
  if (type(any)~="table") return tostr(any)
 | 
					--   if (type(any)~="table") return tostr(any)
 | 
				
			||||||
  local str = "{"
 | 
					--   local str = "{"
 | 
				
			||||||
  for k,v in pairs(any) do
 | 
					--   for k,v in pairs(any) do
 | 
				
			||||||
    if (str~="{") str=str..","
 | 
					--     if (str~="{") str=str..","
 | 
				
			||||||
    str=str..tostring(k).."="..tostring(v)
 | 
					--     str=str..tostring(k).."="..tostring(v)
 | 
				
			||||||
  end
 | 
					--   end
 | 
				
			||||||
  return str.."}"
 | 
					--   return str.."}"
 | 
				
			||||||
end
 | 
					-- end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--
 | 
					--
 | 
				
			||||||
-- Board
 | 
					-- Board
 | 
				
			||||||
| 
						 | 
					@ -127,10 +135,6 @@ function Board.new()
 | 
				
			||||||
			tiles = split(t)
 | 
								tiles = split(t)
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		getWidth = function()
 | 
					 | 
				
			||||||
			return width
 | 
					 | 
				
			||||||
		end,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		getTile = function(self, idx)
 | 
							getTile = function(self, idx)
 | 
				
			||||||
			return tiles[idx]
 | 
								return tiles[idx]
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
| 
						 | 
					@ -241,7 +245,9 @@ function Board.new()
 | 
				
			||||||
			return count
 | 
								return count
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							--
 | 
				
			||||||
		-- Returns the index of a random zero tile
 | 
							-- Returns the index of a random zero tile
 | 
				
			||||||
 | 
							--
 | 
				
			||||||
		getRandomZero = function(self)
 | 
							getRandomZero = function(self)
 | 
				
			||||||
			assert(count(tiles, 0) > 0, "No zero left")
 | 
								assert(count(tiles, 0) > 0, "No zero left")
 | 
				
			||||||
			local zeroes = filter(tiles, function(v) return v == 0 end, true)
 | 
								local zeroes = filter(tiles, function(v) return v == 0 end, true)
 | 
				
			||||||
| 
						 | 
					@ -252,7 +258,9 @@ function Board.new()
 | 
				
			||||||
			return rnd(z)
 | 
								return rnd(z)
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							--
 | 
				
			||||||
		-- Returns the index of a random non-zero tile
 | 
							-- Returns the index of a random non-zero tile
 | 
				
			||||||
 | 
							--
 | 
				
			||||||
		getRandomNonZero = function(self)
 | 
							getRandomNonZero = function(self)
 | 
				
			||||||
			assert(count(tiles, 0) < #tiles, "All zeroes")
 | 
								assert(count(tiles, 0) < #tiles, "All zeroes")
 | 
				
			||||||
			local numbers = filter(tiles, function(v) return v ~= 0 end, true)
 | 
								local numbers = filter(tiles, function(v) return v ~= 0 end, true)
 | 
				
			||||||
| 
						 | 
					@ -544,9 +552,9 @@ function _init()
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function _update60()
 | 
					function _update60()
 | 
				
			||||||
	if not create then
 | 
						-- if not create then
 | 
				
			||||||
		board:solveStep()
 | 
						-- 	board:solveStep()
 | 
				
			||||||
	end
 | 
						-- end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function _draw()
 | 
					function _draw()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user