更新ospin,修复变JL的问题和测试逻辑的一个小问题

This commit is contained in:
MrZ626
2021-04-29 00:18:16 +08:00
parent 6d3ec2a8d2
commit 2de7fb9956

View File

@@ -52,20 +52,20 @@ local function flipList(O)
end end
local function reflect(a) local function reflect(a)
local b={} return{
b[03]=flipList(a[01]) [03]=flipList(a[01]),
b[01]=flipList(a[03]) [01]=flipList(a[03]),
b[30]=flipList(a[10]) [30]=flipList(a[10]),
b[32]=flipList(a[12]) [32]=flipList(a[12]),
b[23]=flipList(a[21]) [23]=flipList(a[21]),
b[21]=flipList(a[23]) [21]=flipList(a[23]),
b[10]=flipList(a[30]) [10]=flipList(a[30]),
b[12]=flipList(a[32]) [12]=flipList(a[32]),
b[02]=flipList(a[02]) [02]=flipList(a[02]),
b[20]=flipList(a[20]) [20]=flipList(a[20]),
b[31]=flipList(a[13]) [31]=flipList(a[13]),
b[13]=flipList(a[31]) [13]=flipList(a[31]),
return b }
end end
local TRS local TRS
@@ -75,12 +75,15 @@ do
{333,5,2,-1,-1,0},{333,5,2, 0,-1,0},{333,5,0, 0, 0,0},--T {333,5,2,-1,-1,0},{333,5,2, 0,-1,0},{333,5,0, 0, 0,0},--T
{313,1,2,-1, 0,0},{313,1,2, 0,-1,0},{313,1,2, 0, 0,0},--Z {313,1,2,-1, 0,0},{313,1,2, 0,-1,0},{313,1,2, 0, 0,0},--Z
{131,2,2, 0, 0,0},{131,2,2,-1,-1,0},{131,2,2,-1, 0,0},--S {131,2,2, 0, 0,0},{131,2,2,-1,-1,0},{131,2,2,-1, 0,0},--S
{331,3,2, 0,-1,0},{113,3,0, 0, 0,0},{113,3,2,-1, 0,0},--J {331,3,2, 0,-1,0},--J(farDown)
{113,4,2,-1,-1,0},{331,4,0,-1, 0,0},{331,4,2, 0, 0,0},--L {113,4,2,-1,-1,0},--L(farDown)
{222,7,2,-1, 0,1},{222,7,2,-2, 0,1},{222,7,2, 0, 0,1},--I {113,3,2,-1,-1,0},{113,3,0, 0, 0,0},--J
{331,4,2, 0,-1,0},{331,4,0,-1, 0,0},--L
{222,7,2,-1, 0,2},{222,7,2,-2, 0,2},{222,7,2, 0, 0,2},--I
{222,7,0,-1, 1,1},{222,7,0,-2, 1,1},{222,7,0, 0, 1,1},--I(high)
{121,6,0, 1,-1,2},{112,6,0, 2,-1,2},{122,6,0, 1,-2,2},--O {121,6,0, 1,-1,2},{112,6,0, 2,-1,2},{122,6,0, 1,-2,2},--O
{323,6,0,-1,-1,2},{332,6,0,-2,-1,2},{322,6,0,-1,-2,2},--O {323,6,0,-1,-1,2},{332,6,0,-2,-1,2},{322,6,0,-1,-2,2},--O
}--{keys, ID, dir, dx, dy, freeLevel (0=immovable,1=L+R immovable,2=free)} }--{keys, ID, dir, dx, dy, freeLevel (0=immovable, 1=U/D-immovable, 2=free)}
local XspinList={ local XspinList={
{{ 1,-1},{ 1, 0},{ 1, 1},{ 1,-2},{ 1, 2}}, {{ 1,-1},{ 1, 0},{ 1, 1},{ 1,-2},{ 1, 2}},
{{ 0,-1},{ 0,-2},{ 0, 1},{ 0,-2},{ 0, 2}}, {{ 0,-1},{ 0,-2},{ 0, 1},{ 0,-2},{ 0, 2}},
@@ -147,7 +150,13 @@ do
local id,dir=L[2],L[3] local id,dir=L[2],L[3]
local bk=BLOCKS[id][dir] local bk=BLOCKS[id][dir]
x,y=P.curX+L[4],P.curY+L[5] x,y=P.curX+L[4],P.curY+L[5]
if not P:ifoverlap(bk,x,y)and(L[6]>0 or P:ifoverlap(bk,x-1,y)and P:ifoverlap(bk,x+1,y))and(L[6]==2 or P:ifoverlap(bk,x,y-1))and P:ifoverlap(bk,x,y+1)then if
not P:ifoverlap(bk,x,y)and(
L[6]>0 or(P:ifoverlap(bk,x-1,y)and P:ifoverlap(bk,x+1,y))
)and(
L[6]==2 or(P:ifoverlap(bk,x,y-1)and P:ifoverlap(bk,x,y+1))
)
then
local C=P.cur local C=P.cur
C.id=id C.id=id
C.bk=bk C.bk=bk