Commit before fixes
This commit is contained in:
		
							parent
							
								
									6d1f8bbc8b
								
							
						
					
					
						commit
						0276d70de3
					
				
							
								
								
									
										37
									
								
								board.lua
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								board.lua
									
									
									
									
									
								
							| 
						 | 
					@ -10,19 +10,10 @@ function Board.new()
 | 
				
			||||||
	local locked = {} -- list of indexes
 | 
						local locked = {} -- list of indexes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local reset = function()
 | 
						local reset = function()
 | 
				
			||||||
		local t = [[
 | 
							tiles = {}
 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
							for i = 1, width * width do
 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
								tiles[i] = 0
 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
							end
 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
					 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
					 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
					 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
					 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
					 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0,
 | 
					 | 
				
			||||||
			0,0,0,0,0,0,0,0,0,0
 | 
					 | 
				
			||||||
		]]
 | 
					 | 
				
			||||||
		tiles = split(t)
 | 
					 | 
				
			||||||
		locked = {}
 | 
							locked = {}
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -76,6 +67,16 @@ function Board.new()
 | 
				
			||||||
			tiles[idx] = color
 | 
								tiles[idx] = color
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							try_flip_tile = function(self, id)
 | 
				
			||||||
 | 
								if locked[id] then return end
 | 
				
			||||||
 | 
								if tiles[id] == 0 then
 | 
				
			||||||
 | 
									tiles[id] = YELLOW
 | 
				
			||||||
 | 
								elseif tiles[id] == YELLOW then
 | 
				
			||||||
 | 
									tiles[id] = BLUE
 | 
				
			||||||
 | 
								else tiles[id] = 0
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		get_rows = function(self)
 | 
							get_rows = function(self)
 | 
				
			||||||
			local ret = {}
 | 
								local ret = {}
 | 
				
			||||||
			for i = 1, width do
 | 
								for i = 1, width do
 | 
				
			||||||
| 
						 | 
					@ -390,16 +391,16 @@ function Board.new()
 | 
				
			||||||
		lock_tiles = function(self)
 | 
							lock_tiles = function(self)
 | 
				
			||||||
			locked = {}
 | 
								locked = {}
 | 
				
			||||||
			for k,v in ipairs(tiles) do
 | 
								for k,v in ipairs(tiles) do
 | 
				
			||||||
				if v > 0 then add(locked, k) end
 | 
									if v > 0 then locked[k] = true end
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		is_locked = function(self, idx)
 | 
							is_locked = function(self, idx)
 | 
				
			||||||
			return #find(locked, idx) > 0
 | 
								return locked[idx]
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		draw_bg = function(self)
 | 
							draw_bg = function(self)
 | 
				
			||||||
			local w = width
 | 
								local w = tile_width
 | 
				
			||||||
			fillp(▒)
 | 
								fillp(▒)
 | 
				
			||||||
			for k,v in ipairs(tiles) do
 | 
								for k,v in ipairs(tiles) do
 | 
				
			||||||
				local x,y = self:draw_coords(k)
 | 
									local x,y = self:draw_coords(k)
 | 
				
			||||||
| 
						 | 
					@ -409,14 +410,14 @@ function Board.new()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		draw = function(self)
 | 
							draw = function(self)
 | 
				
			||||||
			self:draw_bg()
 | 
								self:draw_bg()
 | 
				
			||||||
			local w = width
 | 
								local w = tile_width
 | 
				
			||||||
			for k,v in ipairs(tiles) do
 | 
								for k,v in ipairs(tiles) do
 | 
				
			||||||
				self:draw_tile(k)
 | 
									self:draw_tile(k)
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
		end,
 | 
							end,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		draw_tile = function(self, idx)
 | 
							draw_tile = function(self, idx)
 | 
				
			||||||
			local w = width
 | 
								local w = tile_width
 | 
				
			||||||
			local v = tiles[idx]
 | 
								local v = tiles[idx]
 | 
				
			||||||
			if v > 0 then
 | 
								if v > 0 then
 | 
				
			||||||
				local x,y = self:draw_coords(idx)
 | 
									local x,y = self:draw_coords(idx)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								main.lua
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								main.lua
									
									
									
									
									
								
							| 
						 | 
					@ -99,7 +99,12 @@ local create = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function _init()
 | 
					function _init()
 | 
				
			||||||
	printh(" ")
 | 
						printh(" ")
 | 
				
			||||||
 | 
						printh("*************")
 | 
				
			||||||
	printh(" ")
 | 
						printh(" ")
 | 
				
			||||||
 | 
						local date = stat(80)..stat(81)..stat(82)..stat(85)
 | 
				
			||||||
 | 
						-- srand(date)
 | 
				
			||||||
 | 
						srand(20227149)
 | 
				
			||||||
 | 
						printh(date)
 | 
				
			||||||
	mouse_x = 0
 | 
						mouse_x = 0
 | 
				
			||||||
	mouse_y = 0
 | 
						mouse_y = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@ function state_game()
 | 
				
			||||||
	local board
 | 
						local board
 | 
				
			||||||
	local selected_id = 1
 | 
						local selected_id = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local function drawSelectedTile()
 | 
						local function draw_selected_tile()
 | 
				
			||||||
		local x, y = board:draw_coords(selected_id)
 | 
							local x, y = board:draw_coords(selected_id)
 | 
				
			||||||
		local w = board:get_tile_width()
 | 
							local w = board:get_tile_width()
 | 
				
			||||||
		fillp(▒)
 | 
							fillp(▒)
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@ function state_game()
 | 
				
			||||||
	local function _draw()
 | 
						local function _draw()
 | 
				
			||||||
		cls()
 | 
							cls()
 | 
				
			||||||
		board:draw()
 | 
							board:draw()
 | 
				
			||||||
		drawSelectedTile()
 | 
							draw_selected_tile()
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local function _update()
 | 
						local function _update()
 | 
				
			||||||
| 
						 | 
					@ -35,6 +35,11 @@ function state_game()
 | 
				
			||||||
		elseif btnp(RIGHT) then
 | 
							elseif btnp(RIGHT) then
 | 
				
			||||||
			x += 1
 | 
								x += 1
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if btnp(BTN_O) then
 | 
				
			||||||
 | 
								board:try_flip_tile(selected_id)
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (x<1) x=size
 | 
							if (x<1) x=size
 | 
				
			||||||
		if (x>size) x=1
 | 
							if (x>size) x=1
 | 
				
			||||||
		if (y<1) y=size
 | 
							if (y<1) y=size
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,14 +37,15 @@ function state_loading()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		-- Remove tiles that can be removed
 | 
							-- Remove tiles that can be removed
 | 
				
			||||||
		local previous = {board:get_tiles_copy()} -- initial state
 | 
							local previous = {board:get_tiles_copy()} -- initial state
 | 
				
			||||||
 | 
							local size = board:get_size()*board:get_size()
 | 
				
			||||||
		while true do
 | 
							while true do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			board:set_tiles(previous[#previous])
 | 
								board:set_tiles(previous[#previous])
 | 
				
			||||||
			-- remove a random tile
 | 
								-- remove a random tile
 | 
				
			||||||
			repeat
 | 
								repeat
 | 
				
			||||||
				removing_tile += 1
 | 
									removing_tile += 1
 | 
				
			||||||
			until removing_tile == 100 or board:get_tiles_copy()[removing_tile] ~= 0
 | 
								until removing_tile == size or board:get_tiles_copy()[removing_tile] ~= 0
 | 
				
			||||||
			if removing_tile == 100 then
 | 
								if removing_tile == size then
 | 
				
			||||||
				break
 | 
									break
 | 
				
			||||||
			end
 | 
								end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -111,9 +112,9 @@ function state_loading()
 | 
				
			||||||
		cls()
 | 
							cls()
 | 
				
			||||||
		board:draw_bg()
 | 
							board:draw_bg()
 | 
				
			||||||
		draw_tiles(board)
 | 
							draw_tiles(board)
 | 
				
			||||||
 | 
							local s = board:get_size()*board:get_size()
 | 
				
			||||||
		local l = print(message, 0, -100)
 | 
							local l = print(message, 0, -100)
 | 
				
			||||||
		local y = 118+removing_tile/8
 | 
							local y = 118+(removing_tile/s)*100/8
 | 
				
			||||||
		local colors = {7,6,5,5}
 | 
							local colors = {7,6,5,5}
 | 
				
			||||||
		local ci = removing_tile\20+1
 | 
							local ci = removing_tile\20+1
 | 
				
			||||||
		local c = colors[ci]
 | 
							local c = colors[ci]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user