更新ospin,修复变JL的问题和测试逻辑的一个小问题
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user