修复小程序2048之前在删goto时造成的逻辑错误
This commit is contained in:
@@ -128,33 +128,34 @@ local function squash(L)
|
|||||||
local moved=false
|
local moved=false
|
||||||
while true do
|
while true do
|
||||||
p2=p1+1
|
p2=p1+1
|
||||||
while not L[p2]do
|
while not L[p2]and p2<5 do
|
||||||
p2=p2+1
|
p2=p2+1
|
||||||
if p2==5 then
|
|
||||||
p1=p1+1
|
|
||||||
if p1==4 then
|
|
||||||
return L[1],L[2],L[3],L[4],moved
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
if not L[p1]then--air←2
|
if p2==5 then
|
||||||
L[p1],L[p2]=L[p2],false
|
if p1==4 then
|
||||||
moved=true
|
return L[1],L[2],L[3],L[4],moved
|
||||||
elseif L[p1]==L[p2]then--2←2
|
else
|
||||||
L[p1],L[p2]=L[p1]+1,false
|
p1=p1+1
|
||||||
if L[p1]>maxTile then
|
end
|
||||||
freshMaxTile()
|
else
|
||||||
|
if not L[p1]then--air←2
|
||||||
|
L[p1],L[p2]=L[p2],false
|
||||||
|
moved=true
|
||||||
|
elseif L[p1]==L[p2]then--2←2
|
||||||
|
L[p1],L[p2]=L[p1]+1,false
|
||||||
|
if L[p1]>maxTile then
|
||||||
|
freshMaxTile()
|
||||||
|
end
|
||||||
|
L[p2]=false
|
||||||
|
p1=p1+1
|
||||||
|
moved=true
|
||||||
|
elseif p1+1~=p2 then--2←4
|
||||||
|
L[p1+1],L[p2]=L[p2],false
|
||||||
|
p1=p1+1
|
||||||
|
moved=true
|
||||||
|
else--2,4
|
||||||
|
p1=p1+1
|
||||||
end
|
end
|
||||||
L[p2]=false
|
|
||||||
p1=p1+1
|
|
||||||
moved=true
|
|
||||||
elseif p1+1~=p2 then--2←4
|
|
||||||
L[p1+1],L[p2]=L[p2],false
|
|
||||||
p1=p1+1
|
|
||||||
moved=true
|
|
||||||
else--2,4
|
|
||||||
p1=p1+1
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user