五连块颜色调整,加入一至三连块,删除mino文件,整理相关代码,美化注释

This commit is contained in:
MrZ626
2020-12-21 13:51:41 +08:00
parent da46057666
commit 66f5c30f5a
11 changed files with 170 additions and 91 deletions

View File

@@ -90,7 +90,6 @@ require"parts/gametoolfunc"
SCR.setSize(1280,720)--Initialize Screen size
FIELD[1]=newBoard()--Initialize field[1]
BLOCKS= require"parts/mino"
AIBUILDER= require"parts/AITemplate"
FREEROW= require"parts/freeRow"
@@ -234,7 +233,8 @@ LANG.setPublicText{
"Z","S","J","L","T","O","I",
"Z5","S5","Q","P","F","E",
"T5","U","V","W","X",
"J5","L5","R","Y","N","H","I5"
"J5","L5","R","Y","N","H","I5",
"I3","C","I2","O1"
},
}
LANG.setPublicWidgetText{

View File

@@ -259,8 +259,8 @@ SETTING={--Settings
appLock=false,
lang=1,
skinSet=1,
skin={1,7,11,3,14,4,9,1,7,1,7,11,3,14,4,9,14,9,11,3,11,3,1,7,4},
face={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
skin={1,7,11,3,14,4,9,1,7,2,6,10,2,13,5,9,15,10,11,3,10,2,16,8,4,10,13,2,8},
face={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
--Graphic
block=true,ghost=.3,center=1,
@@ -321,7 +321,7 @@ else
lastPlay="sprint_10",--Last played mode ID
date=nil,
todayTime=0,
}for i=1,25 do STAT.clear[i]={0,0,0,0,0,0}STAT.spin[i]={0,0,0,0,0,0,0}end
}for i=1,29 do STAT.clear[i]={0,0,0,0,0,0}STAT.spin[i]={0,0,0,0,0,0,0}end
end
keyMap=FILE.load("conf/key")or{--Key setting
{"left","right","x","z","c","up","down","space","tab","r"},{},

View File

@@ -1,17 +1,28 @@
local zero={0,0}
local noKick,noKick_180 do
local noKick,noKick_180,pushZero do
local zero={0,0}
local Zero={zero}
noKick={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero}
noKick_180={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero,[02]=Zero,[20]=Zero,[13]=Zero,[31]=Zero}
function pushZero(t)
for _,L in next,t do
if type(L)=="table"then
for _,v in next,L do
table.insert(v,1,zero)
end
end
end
end
end
local map={}
for x=-3,3 do map[x]={}for y=-3,3 do map[x][y]={x,y}end end
local function collect(T)--Make all vec point to the same vec
if type(T)=="table"then
for _,t in next,T do
for k,vec in next,t do
t[k]=map[vec[1]][vec[2]]
local collect do
local map={}
for x=-3,3 do map[x]={}for y=-3,3 do map[x][y]={x,y}end end
function collect(T)--Make all vec point to the same vec
if type(T)=="table"then
for _,t in next,T do
for k,vec in next,t do
t[k]=map[vec[1]][vec[2]]
end
end
end
end
@@ -45,15 +56,6 @@ local function reflect(a)
b[13]=flipList(a[31])
return b
end
local function pushZero(t)
for _,L in next,t do
if type(L)=="table"then
for _,v in next,L do
table.insert(v,1,zero)
end
end
end
end
local TRS
do
@@ -329,6 +331,35 @@ do
[03]={{-1,-1},{-1, 0},{-1, 1},{-0, 1},{ 1, 1},{ 1, 0},{ 1,-1},{-0,-1},{-0,-2},{ 2,-1},{ 2,-2},{-2, 0},{-2,-1},{-2,-2},{-1, 2},{-2, 2},{ 1, 2},{ 2, 2}},
[30]={{ 1, 0},{ 1,-1},{-0,-1},{-1,-1},{ 2,-2},{ 2,-1},{ 2, 0},{ 1,-2},{-0,-2},{-1,-2},{-2,-2},{ 1, 1},{ 2, 1},{ 2, 2},{-1, 0},{-2, 0},{-2,-1},{ 0, 1},{-1,-1},{-2,-2}},
},--I5
{
[01]={{-1, 0},{-1,-1},{ 1, 1},{-1, 1}},
[10]={{-1, 0},{ 1, 0},{-1,-1},{ 1, 1}},
[03]={{ 1, 0},{ 1,-1},{-1, 1},{ 1, 1}},
[30]={{ 1, 0},{-1, 0},{ 1,-1},{-1, 1}},
},--I3
{
[01]={{-1, 0},{ 1, 0}},
[10]={{ 1, 0},{-1, 0}},
[03]={{ 0, 1},{ 0,-1}},
[30]={{ 0,-1},{ 0, 1}},
[12]={{ 0, 1},{ 0,-1}},
[21]={{ 0,-1},{ 0, 1}},
[32]={{-1, 0},{ 1, 0}},
[23]={{ 1, 0},{-1, 0}},
[02]={{ 0,-1},{ 1,-1},{-1,-1}},
[20]={{ 0, 1},{-1, 1},{ 1, 1}},
[13]={{ 0,-1},{-1,-1},{ 1,-1}},
[31]={{ 0, 1},{ 1, 1},{-1, 1}},
},--C
{
[01]={},[10]={},[03]={},[30]={},
[12]={},[21]={},[32]={},[23]={},
[02]={{ 0,-1}},[20]={{ 0, 1}},
[13]={{-1, 0}},[31]={{ 1, 0}},
},--I2
{
[01]={},[10]={},[03]={},[30]={},
},--O1
}
TRS[2]= reflect(TRS[1])--SZ
TRS[4]= reflect(TRS[3])--LJ
@@ -338,10 +369,9 @@ do
TRS[20]=reflect(TRS[19])--L5J5
TRS[22]=reflect(TRS[21])--RY
TRS[24]=reflect(TRS[23])--HN
C_sym(TRS[8])
C_sym(TRS[9])
C_sym(TRS[25])
for i=1,25 do collect(TRS[i])end
C_sym(TRS[8])C_sym(TRS[9])
C_sym(TRS[25])C_sym(TRS[26])C_sym(TRS[29])
for i=1,29 do collect(TRS[i])end
pushZero(TRS)
end
@@ -380,7 +410,7 @@ do
collect(SRS[7])
pushZero(SRS)
for i=2,5 do SRS[i]=SRS[1]end
for i=8,25 do SRS[i]=SRS[1]end
for i=8,29 do SRS[i]=SRS[1]end
end
local C2
@@ -394,7 +424,7 @@ do
}
}
collect(C2[1])
for i=2,25 do C2[i]=C2[1]end
for i=2,29 do C2[i]=C2[1]end
end
local C2sym
@@ -417,6 +447,7 @@ do
Z,--T
noKick,--O
Z,--I
Z,S,--Z5,S5
Z,S,--P,Q
Z,S,--F,E
@@ -425,14 +456,17 @@ do
Z,S,--J5,L5
Z,S,--R,Y
Z,S,--N,H
Z,Z,--I3,C
Z,Z,--I2,O1
}
end
local Classic={}
for i=1,25 do Classic[i]=noKick end
for i=1,29 do Classic[i]=noKick end
local None={}
for i=1,25 do None[i]=noKick_180 end
for i=1,29 do None[i]=noKick_180 end
return{
TRS=TRS,

View File

@@ -445,6 +445,7 @@ return{
Z="Z",S="S",J="J",L="L",T="T",O="O",I="I",
Z5="Z5",S5="S5",P="P",Q="Q",F="F",E="E",T5="T5",U="U",
V="V",W="W",X="X",J5="J5",L5="L5",R="R",Y="Y",N="N",H="H",I5="I5",
I3="I3",C="C",I2="I2",O1="O1",
left="",
right="",
ten="→→",

View File

@@ -446,6 +446,7 @@ return{
Z="Z",S="S",J="J",L="L",T="T",O="O",I="I",
Z5="Z5",S5="S5",P="P",Q="Q",F="F",E="E",T5="T5",U="U",
V="V",W="W",X="X",J5="J5",L5="L5",R="R",Y="Y",N="N",H="H",I5="I5",
I3="I3",C="C",I2="I2",O1="O1",
left="",
right="",
ten="→→",

View File

@@ -232,6 +232,8 @@ do--spinCenters
local I1,I2,I3,I4={-.5,1.5},{1.5,-.5},{.5,1.5},{1.5,.5}
local V4={1.5,1.5}
local L1,L2={0,2},{2,0}
local S1,S2={-.5,.5},{.5,-.5}
local D={0,0}
spinCenters={
--Tetramino
{[0]=N1,N2,N3,N3},--Z
@@ -243,26 +245,97 @@ do--spinCenters
{[0]=I1,I2,I3,I4},--I
--Pentomino
{[0]=N3,N3,N3,N3},--Z
{[0]=N3,N3,N3,N3},--S
{[0]=N3,N3,N3,N3},--Z5
{[0]=N3,N3,N3,N3},--S5
{[0]=N1,N2,N3,N3},--P
{[0]=N1,N2,N3,N3},--Q
{[0]=N3,N3,N3,N3},--F
{[0]=N3,N3,N3,N3},--E
{[0]=N3,N3,N3,N3},--T
{[0]=N3,N3,N3,N3},--T5
{[0]=N1,N2,N3,N3},--U
{[0]=I3,N4,I4,V4},--V
{[0]=N3,N3,N3,N3},--W
{[0]=N3,N3,N3,N3},--X
{[0]=I3,I4,I3,I4},--J
{[0]=I3,I4,I3,I4},--L
{[0]=I3,I4,I3,I4},--J5
{[0]=I3,I4,I3,I4},--L5
{[0]=I3,I4,I3,I4},--R
{[0]=I3,I4,I3,I4},--Y
{[0]=I3,I4,I3,I4},--N
{[0]=I3,I4,I3,I4},--H
{[0]=L1,L2,L1,L2},--I
{[0]=L1,L2,L1,L2},--I5
--Trimino
{[0]=N1,N2,N1,N2},--I3
{[0]=N4,N4,N4,N4},--C
--Domino
{[0]=S1,S2,N4,N4},--I2
--Dot
{[0]=D,D,D,D},--O1
}
end
do--BLOCKS
local function RotCW(B)
local N={}
local r,c=#B,#B[1]--row,col
for x=1,c do
N[x]={}
for y=1,r do
N[x][y]=B[y][c-x+1]
end
end
return N
end
local O,_=true,false
BLOCKS={
--Tetramino
{{_,O,O},{O,O,_}}, --Z
{{O,O,_},{_,O,O}}, --S
{{O,O,O},{O,_,_}}, --J
{{O,O,O},{_,_,O}}, --L
{{O,O,O},{_,O,_}}, --T
{{O,O},{O,O}}, --O
{{O,O,O,O}}, --I
--Pentomino
{{_,O,O},{_,O,_},{O,O,_}}, --Z5
{{O,O,_},{_,O,_},{_,O,O}}, --S5
{{O,O,O},{O,O,_}}, --P
{{O,O,O},{_,O,O}}, --Q
{{_,O,_},{O,O,O},{O,_,_}}, --F
{{_,O,_},{O,O,O},{_,_,O}}, --E
{{O,O,O},{_,O,_},{_,O,_}}, --T5
{{O,O,O},{O,_,O}}, --U
{{O,O,O},{_,_,O},{_,_,O}}, --V
{{_,O,O},{O,O,_},{O,_,_}}, --W
{{_,O,_},{O,O,O},{_,O,_}}, --X
{{O,O,O,O},{O,_,_,_}}, --J5
{{O,O,O,O},{_,_,_,O}}, --L5
{{O,O,O,O},{_,O,_,_}}, --R
{{O,O,O,O},{_,_,O,_}}, --Y
{{_,O,O,O},{O,O,_,_}}, --N
{{O,O,O,_},{_,_,O,O}}, --H
{{O,O,O,O,O}}, --I5
--Trimino
{{O,O,O}}, --I3
{{O,O},{_,O}}, --C
--Domino
{{O,O}}, --I2
--Dot
{{O}}, --O1
}
for i=1,#BLOCKS do
local B=BLOCKS[i]
BLOCKS[i]={[0]=B}
B=RotCW(B)BLOCKS[i][1]=B
B=RotCW(B)BLOCKS[i][2]=B
B=RotCW(B)BLOCKS[i][3]=B
end
end
rankColor={
COLOR.dRed, --D

View File

@@ -1,50 +0,0 @@
local function RotCW(B)
local N={}
local r,c=#B,#B[1]--row,col
for x=1,c do
N[x]={}
for y=1,r do
N[x][y]=B[y][c-x+1]
end
end
return N
end
local O,_=true,false
local L={
--Tetramino
{{_,O,O},{O,O,_}}, --Z
{{O,O,_},{_,O,O}}, --S
{{O,O,O},{O,_,_}}, --J
{{O,O,O},{_,_,O}}, --L
{{O,O,O},{_,O,_}}, --T
{{O,O},{O,O}}, --O
{{O,O,O,O}}, --I
--Pentomino
{{_,O,O},{_,O,_},{O,O,_}}, --Z
{{O,O,_},{_,O,_},{_,O,O}}, --S
{{O,O,O},{O,O,_}}, --P
{{O,O,O},{_,O,O}}, --Q
{{_,O,_},{O,O,O},{O,_,_}}, --F
{{_,O,_},{O,O,O},{_,_,O}}, --E
{{O,O,O},{_,O,_},{_,O,_}}, --T
{{O,O,O},{O,_,O}}, --U
{{O,O,O},{_,_,O},{_,_,O}}, --V
{{_,O,O},{O,O,_},{O,_,_}}, --W
{{_,O,_},{O,O,O},{_,O,_}}, --X
{{O,O,O,O},{O,_,_,_}}, --J
{{O,O,O,O},{_,_,_,O}}, --L
{{O,O,O,O},{_,O,_,_}}, --R
{{O,O,O,O},{_,_,O,_}}, --Y
{{_,O,O,O},{O,O,_,_}}, --N
{{O,O,O,_},{_,_,O,O}}, --H
{{O,O,O,O,O}}, --I
}
for i=1,#L do
local B=L[i]
L[i]={[0]=B}
B=RotCW(B)L[i][1]=B
B=RotCW(B)L[i][2]=B
B=RotCW(B)L[i][3]=B
end
return L

View File

@@ -24,7 +24,7 @@ local function getNewStatTable()
pc=0,hpc=0,b2b=0,b3b=0,
maxCombo=0,maxFinesseCombo=0,
}
for i=1,25 do
for i=1,29 do
T.clear[i]={0,0,0,0,0,0}
T.spin[i]={0,0,0,0,0,0,0}
T.clears[i]=0

View File

@@ -826,6 +826,26 @@ do--Player.drop(P)--Place piece
{2,3,2,2,1,2,3,2,3,2},
1,2
},--I5
{
{1,2,1,0,1,2,2,1},
{2,2,3,2,1,2,3,3,2,2},
1,2
},--I3
{
{1,2,2,1,0,1,2,2,1},
{2,3,3,2,1,2,3,3,2},
{3,4,4,3,2,3,4,4,3},
2
},--C
{
{1,2,2,1,0,1,2,2,1},
{2,2,3,2,1,1,2,3,2,2},
1,2
},--I2
{
{1,2,2,1,0,1,2,3,2,1},
2,3,4
},--O1
}
for k,v in next,finesseList do
if type(v)=="table"then

View File

@@ -60,12 +60,12 @@ scene.widgetList={
WIDGET.newButton{name="skinR", x=200,y=640,w=220,h=80,color="lPurple",font=35,
code=function()
SETTING.skin={1,7,11,3,14,4,9,1,7,1,7,11,3,14,4,9,14,9,11,3,11,3,1,7,4}
SETTING.skin={1,7,11,3,14,4,9,1,7,2,6,10,2,13,5,9,15,10,11,3,10,2,16,8,4,10,13,2,8}
SFX.play("rotate")
end},
WIDGET.newButton{name="faceR", x=480,y=640,w=220,h=80,color="lRed",font=35,
code=function()
for i=1,25 do
for i=1,29 do
SETTING.face[i]=0
end
SFX.play("hold")

View File

@@ -17,7 +17,7 @@ for i=1,20 do
end
TEXTURE.miniBlock={}
for i=1,25 do
for i=1,29 do
local b=BLOCKS[i][0]
TEXTURE.miniBlock[i]=C(#b[1],#b)
for y=1,#b do for x=1,#b[1]do