2015-06-23 15:27

Lua循环的一些不同

	for y=4,1,-1 do
		for x=4,1,-1 do
			-- print("现在的位置",x,y,cardArr[x][y]:getNumber())
			local x1 = x - 1
			while (x1 >= 1) do
				print(x,y,x1,y)
				card = cardArr[x][y]
				cardLast = cardArr[x1][y]
				if (cardLast:getNumber() > 0) then
					print("cardLast大于0")
					if (card:getNumber() <= 0) then
						print(x1,y,cardArr[x1][y]:getNumber(),"--->",x,y,cardArr[x][y]:getNumber())

						card:setNumber(cardLast:getNumber())
						cardLast:setNumber(0)
						-- 发现一个问题,这里如果不检测的话,会出现x等于0的现象,然后导致数组溢出。
						-- ****这里和c++版有一处不同,这里设置x的值不会改变任何结果,不会影响上面的循环。***
						-- if (x < 4) then
						-- 	x = x + 1
						-- end
					elseif (card:getNumber() == cardLast:getNumber()) then
						card:setNumber(card:getNumber() * 2)
						cardLast:setNumber(0)
						print(x1,y,cardArr[x1][y]:getNumber(),"--->",x,y,cardArr[x][y]:getNumber())
					end
					x1 = 0
					break
				end
				x1 = x1 - 1
				-- break
			end
		end
	end

最主要的就是星号*部分的,和c++的语法差异很大。

参考文章:http://blog.csdn.net/yanjun_1982/article/details/8966332