Hi, I'm trying to code a TETRIS clone and I thought I could use an array of arrays to handle the pieces. I figured out something like this to initialize the arrays. At the end there is a bit of code to check out the variables:
Global Piece:Int[][][][]=..
[.. 'start of "Piece" variable
[.. 'Pezzo[0] (O)
[.. 'ROT[0]
[1,1,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[0]
[.. 'ROT[1]
[1,1,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[1]
[.. 'ROT[2]
[1,1,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[2]
[.. 'ROT[3]
[1,1,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
].. '\ROT[3]
].. '\Pezzo[0]
,..
[.. 'Pezzo[1] (|)
[.. 'ROT[0]
[1,1,1,1],..'X[],Y[0]
[0,0,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[0]
[.. 'ROT[1]
[1,0,0,0],..'X[],Y[0]
[1,0,0,0],..'X[],Y[1]
[1,0,0,0],..'X[],Y[2]
[1,0,0,0].. 'X[],Y[3]
],.. '\ROT[1]
[.. 'ROT[2]
[1,1,1,1],..'X[],Y[0]
[0,0,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[2]
[.. 'ROT[3]
[1,0,0,0],..'X[],Y[0]
[1,0,0,0],..'X[],Y[1]
[1,0,0,0],..'X[],Y[2]
[1,0,0,0].. 'X[],Y[3]
].. '\ROT[3]
].. '\Pezzo[1]
,..
[.. 'Pezzo[2] (Z)
[.. 'ROT[0]
[1,1,0,0],..'X[],Y[0]
[0,1,1,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[0]
[.. 'ROT[1]
[0,1,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[1,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[1]
[.. 'ROT[2]
[1,1,0,0],..'X[],Y[0]
[0,1,1,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[2]
[.. 'ROT[3]
[0,1,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[1,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
].. '\ROT[3]
].. '\Pezzo[2]
,..
[.. 'Pezzo[3] (S)
[.. 'ROT[0]
[0,1,1,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[0]
[.. 'ROT[1]
[1,0,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,1,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[1]
[.. 'ROT[2]
[0,1,1,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[2]
[.. 'ROT[3]
[1,0,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,1,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
].. '\ROT[3]
].. '\Pezzo[3]
,..
[.. 'Pezzo[4] (L)
[.. 'ROT[0]
[1,0,0,0],..'X[],Y[0]
[1,0,0,0],..'X[],Y[1]
[1,1,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[0]
[.. 'ROT[1]
[1,1,1,0],..'X[],Y[0]
[1,0,0,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[1]
[.. 'ROT[2]
[1,1,0,0],..'X[],Y[0]
[0,1,0,0],..'X[],Y[1]
[0,1,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[2]
[.. 'ROT[3]
[0,0,1,0],..'X[],Y[0]
[1,1,1,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
].. '\ROT[3]
].. '\Pezzo[4]
,..
[.. 'Pezzo[5] (J)
[.. 'ROT[0]
[0,1,0,0],..'X[],Y[0]
[0,1,0,0],..'X[],Y[1]
[1,1,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[0]
[.. 'ROT[1]
[1,0,0,0],..'X[],Y[0]
[1,1,1,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[1]
[.. 'ROT[2]
[1,1,0,0],..'X[],Y[0]
[1,0,0,0],..'X[],Y[1]
[1,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[2]
[.. 'ROT[3]
[1,1,1,0],..'X[],Y[0]
[0,0,1,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
].. '\ROT[3]
].. '\Pezzo[5]
,..
[.. 'Pezzo[6] (T)
[.. 'ROT[0]
[0,1,0,0],..'X[],Y[0]
[1,1,1,0],..'X[],Y[1]
[0,0,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[0]
[.. 'ROT[1]
[0,1,0,0],..'X[],Y[0]
[0,1,1,0],..'X[],Y[1]
[0,1,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[1]
[.. 'ROT[2]
[0,0,0,0],..'X[],Y[0]
[1,1,1,0],..'X[],Y[1]
[0,1,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
],.. '\ROT[2]
[.. 'ROT[3]
[0,1,0,0],..'X[],Y[0]
[1,1,0,0],..'X[],Y[1]
[0,1,0,0],..'X[],Y[2]
[0,0,0,0].. 'X[],Y[3]
].. '\ROT[3]
].. '\Pezzo[6]
] 'End of "Piece" Variable
Graphics 800,600
'DebugStop
For p=0 To 6
For r=0 To 3
For y=0 To 3
For x=0 To 3
If piece[p][r][y][x]=1
SetColor 255,255,255
Else
SetColor 255,0,0
EndIf
DrawRect(r*65+x*16,y*16+p*65,16,16)
Next
Next
Next
Next
Flip
WaitKey
|