更新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
local function reflect(a)
local b={}
b[03]=flipList(a[01])
b[01]=flipList(a[03])
b[30]=flipList(a[10])
b[32]=flipList(a[12])
b[23]=flipList(a[21])
b[21]=flipList(a[23])
b[10]=flipList(a[30])
b[12]=flipList(a[32])
b[02]=flipList(a[02])
b[20]=flipList(a[20])
b[31]=flipList(a[13])
b[13]=flipList(a[31])
return b
return{
[03]=flipList(a[01]),
[01]=flipList(a[03]),
[30]=flipList(a[10]),
[32]=flipList(a[12]),
[23]=flipList(a[21]),
[21]=flipList(a[23]),
[10]=flipList(a[30]),
[12]=flipList(a[32]),
[02]=flipList(a[02]),
[20]=flipList(a[20]),
[31]=flipList(a[13]),
[13]=flipList(a[31]),
}
end
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
{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
{331,3,2, 0,-1,0},{113,3,0, 0, 0,0},{113,3,2,-1, 0,0},--J
{113,4,2,-1,-1,0},{331,4,0,-1, 0,0},{331,4,2, 0, 0,0},--L
{222,7,2,-1, 0,1},{222,7,2,-2, 0,1},{222,7,2, 0, 0,1},--I
{331,3,2, 0,-1,0},--J(farDown)
{113,4,2,-1,-1,0},--L(farDown)
{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
{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={
{{ 1,-1},{ 1, 0},{ 1, 1},{ 1,-2},{ 1, 2}},
{{ 0,-1},{ 0,-2},{ 0, 1},{ 0,-2},{ 0, 2}},
@@ -147,7 +150,13 @@ do
local id,dir=L[2],L[3]
local bk=BLOCKS[id][dir]
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
C.id=id
C.bk=bk