TetrisPiece = new TetrisShape(mouseX,mouseY,d)
for(let i = 0; i<=width; i+=d){
for(let j = 0; j<=height; j+=d){
for (let i = 0; i < TetrisPieces.length; i++) {
this.color = color(random(0,360),random(0,100),random(0,100))
this.type = int(random(0,7))
if(this.x==px && this.y ==py){
drawShadedRect(0,0,d,d, this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color),drawShadedRect(3*d,0,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color),drawShadedRect(0,3*d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color),drawShadedRect(3*d,0,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color),drawShadedRect(0,3*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(-d,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(-d,0,d,d,this.color),drawShadedRect(-d,-d,d,d,this.color),drawShadedRect(-2*d,0,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,-d,d,d,this.color),drawShadedRect(d,-d,d,d,this.color),drawShadedRect(0,-2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,-d,d,d,this.color),drawShadedRect(2*d,-d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,-d,d,d,this.color),drawShadedRect(2*d,-d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(2*d,d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(-d,d,d,d,this.color),drawShadedRect(-d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(2*d,d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(-d,d,d,d,this.color),drawShadedRect(-d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(d,d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color),drawShadedRect(2*d,d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color),drawShadedRect(-d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(-d,0,d,d,this.color),drawShadedRect(-2*d,0,d,d,this.color),drawShadedRect(-2*d,-d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,-d,d,d,this.color),drawShadedRect(0,-2*d,d,d,this.color),drawShadedRect(d,-2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color),drawShadedRect(2*d,-d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color),drawShadedRect(d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(-d,0,d,d,this.color),drawShadedRect(-2*d,0,d,d,this.color),drawShadedRect(-2*d,d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,-d,d,d,this.color),drawShadedRect(0,-2*d,d,d,this.color),drawShadedRect(-d,-2*d,d,d,this.color)
translate(mouseX - mouseX%d,mouseY-mouseY%d)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color),drawShadedRect(3*d,0,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color),drawShadedRect(0,3*d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color),drawShadedRect(3*d,0,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color),drawShadedRect(0,3*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(-d,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(-d,0,d,d,this.color),drawShadedRect(-d,-d,d,d,this.color),drawShadedRect(-2*d,0,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,-d,d,d,this.color),drawShadedRect(d,-d,d,d,this.color),drawShadedRect(0,-2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,-d,d,d,this.color),drawShadedRect(2*d,-d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,-d,d,d,this.color),drawShadedRect(2*d,-d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(2*d,d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(-d,d,d,d,this.color),drawShadedRect(-d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(d,d,d,d,this.color),drawShadedRect(2*d,d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(-d,d,d,d,this.color),drawShadedRect(-d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(d,d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color),drawShadedRect(2*d,d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color),drawShadedRect(-d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(-d,0,d,d,this.color),drawShadedRect(-2*d,0,d,d,this.color),drawShadedRect(-2*d,-d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,-d,d,d,this.color),drawShadedRect(0,-2*d,d,d,this.color),drawShadedRect(d,-2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(d,0,d,d,this.color),drawShadedRect(2*d,0,d,d,this.color),drawShadedRect(2*d,-d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,d,d,d,this.color),drawShadedRect(0,2*d,d,d,this.color),drawShadedRect(d,2*d,d,d,this.color)
drawShadedRect(0,0,d,d,this.color),drawShadedRect(-d,0,d,d,this.color),drawShadedRect(-2*d,0,d,d,this.color),drawShadedRect(-2*d,d,d,d,this.color)
drawShadedRect(0,0,d,d, this.color),drawShadedRect(0,-d,d,d,this.color),drawShadedRect(0,-2*d,d,d,this.color),drawShadedRect(-d,-2*d,d,d,this.color)
function drawShadedRect(x,y,w,h,c){
let strokeColorDark = color(hue(c),saturation(c),brightness(c)-27)
let strokeColorLight = color(hue(c),saturation(c)-13,brightness(c)+38)
rect(x+incr,y+incr,w-2*incr,h-2*incr);
rect(x+2*incr,y+2*incr,w-4*incr,h-4*incr);
rect(x+3*incr,y+3*incr,w-6*incr,h-6*incr);
rect(x+4*incr,y+4*incr,w-8*incr,h-8*incr);
rect(x+incr,y+5*incr,w-6*incr,h-6*incr);
rect(x+2*incr,y+6*incr,w-7*incr,h-7*incr);
rect(x+3*incr,y+7*incr,w-8*incr,h-8*incr);
rect(x+4*incr,y+8*incr,w-9*incr,h-9*incr);
rect(x+5*incr,y+5*incr,w-10*incr,h-10*incr);
TetrisPiece.r = (TetrisPiece.r + 1)%4;
TetrisPiece.x = mouseX - mouseX%d, TetrisPiece.y = mouseY- mouseY%d,
TetrisPieces.push(TetrisPiece);
TetrisPiece = new TetrisShape(mouseX,mouseY,d)