Tetris Game In JAVA
Welcome back guys sorry for the delay but I am back with the new project "Tetris Game" an old school, so here are the steps to create this game 
P.S.: Use Netbeans compiler
To download Netbeans click here
If you guys want to download this file click here
Steps 
1.) Create a new project and name it "Tetris".
2.) Create eight classes and name it "TetrisFrame","TetrisPanel","TetrisShape1","TetrisShape2","TetrisShape3","TetrisShape4","TetrisShape5" as shown in figure.
3.) Source Code for these classes is given below respectively.
For class TetrisFrame
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class TretisFrame extends JFrame{
 private static final long serialVersionUID = 1L;
 public TretisPanel pan;
 public Dimension dim;
 int locX;
 int locY;
 public TretisFrame() throws InterruptedException{
  dim = Toolkit.getDefaultToolkit().getScreenSize();
  locX=(int) dim.getWidth()*4/12;//this is to set the game into the center of the screen
  locY=(int) dim.getHeight()*2/12;
  pan = new TretisPanel();
  this.setTitle("TretisFrame");
  this.setSize(326,585);
  this.setLocation(locX, locY);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setVisible(true);
  this.setFocusable(true);
  this.setResizable(false);
  this.add(pan);
  addKeyListener(pan);
 }
 public static void main(String[] args) throws InterruptedException{
  new TretisFrame();
 }
}
For class TetrisPanel
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
import javax.swing.Timer; // not used the timer, but did use it for debuging
public class TretisPanel extends JPanel implements KeyListener, ActionListener{
 private static final long serialVersionUID = 1L;
 Tretiscontrol con;
 public static int spin, num=1,yNum=1,xNum =1,offSet,offSet2,dropDownTo=500;
 public static boolean shapeEnd,reached=false,onSide=true,firstShape=false;
 public int iPlus20,jPlus20;
 TretisShape1 shape1;
 TretisShape2 shape2;
 TretisShape3 shape3;
 TretisShape4 shape4;
 TretisShape5 shape5;
 Timer time;
 public TretisPanel() throws InterruptedException{
  con = new Tretiscontrol();
  shape1 = new TretisShape1();
  shape2 = new TretisShape2();
  shape3 = new TretisShape3();
  shape4 = new TretisShape4();
  shape5 = new TretisShape5();
  spin=0;
  this.setSize(350,300);
  this.setVisible(true);
  addKeyListener(this);
  this.setFocusable(true);
  this.requestFocus();
  time = new Timer(30,this);
  time.start();
 }
 public void paint(Graphics g){
   g.setColor(Color.black);
   g.fillRect(0,0,350,560);
  for(int i = 0;i<375;i++){System.out.println();}     //put this in just to slow the program down, without spending to much time, as its a demo.
   for(int i = 1;i<27;i++){
    iPlus20=i*20;
    for(int j = 1;j<15;j++){
     jPlus20=j*20;
     //*****************  Inside the two for loops, five different colours of each Shape for each element of the Array and white for background.  ********************//
     if(con.cont[i][j]==0){
      g.setColor(Color.white);
     }
     if(con.cont[i][j]==1){
      g.setColor(Color.cyan);
     }
     if(con.cont[i][j]==2){
      g.setColor(Color.red);
     }
     if(con.cont[i][j]==3){
      g.setColor(Color.yellow);
     }
     if(con.cont[i][j]==4){
      g.setColor(Color.green);
     }
     if(con.cont[i][j]==5){
      g.setColor(Color.blue);
     }
     if(con.cont[i][j]==100){
      g.setColor(Color.white);
     }
     //******************  ********************************************   ******************************************************//
     g.fillRect(jPlus20, iPlus20, 20, 20);
    }
   }
  if(num==1){
   TretisShape1.num=1;
   shape1.paint(g);
   TretisPanel.shapeEnd=false;
   con.checkRow1();
   if(shape1.onSide==false){con.checkCols7(xNum);}    
   if(shape1.onSide==true){con.checkCols4(xNum);}  
   if(reached==true){ 
     if(shape1.onSide==false){
      con.cont[yNum-2][xNum]=Tretiscontrol.colr;
      con.cont[yNum-1][xNum]=Tretiscontrol.colr;
      con.cont[yNum][xNum]=Tretiscontrol.colr; 
     }
     if(shape1.onSide==true){
      con.cont[yNum][xNum-2]=Tretiscontrol.colr;
      con.cont[yNum][xNum-1]=Tretiscontrol.colr;
      con.cont[yNum][xNum]=Tretiscontrol.colr;
     }
   }
  }
  if(num==2){
     TretisShape2.num=2;
   shape2.paint(g);
   TretisPanel.shapeEnd=false;
   con.checkRow1();
   if(shape2.onSide==1){con.checkCols2(xNum);}
   if(shape2.onSide==2){con.checkCols4(xNum);}
   if(shape2.onSide==3){con.checkCols6(xNum);}
   if(shape2.onSide==4){con.checkCols3(xNum);}
   //con.cont[1][9]=Tretiscontrol.colr;
   if(reached==true){                                 //this draws the shape where it lands on the panel and sets the array.
    if(shape2.onSide==1){
     con.cont[yNum][xNum]=Tretiscontrol.colr;
     con.cont[yNum+1][xNum]=Tretiscontrol.colr;
     con.cont[yNum+2][xNum]=Tretiscontrol.colr;
     con.cont[yNum+1][xNum+1]=Tretiscontrol.colr;
    }
                                     //this draws the shape where it lands on the panel and sets the array.
     if(shape2.onSide==2){
      con.cont[yNum+1][xNum-1]=Tretiscontrol.colr;
      con.cont[yNum+1][xNum]=Tretiscontrol.colr;
      con.cont[yNum+1][xNum-2]=Tretiscontrol.colr;
      con.cont[yNum][xNum-1]=Tretiscontrol.colr;
     }
                                   //this draws the shape where it lands on the panel and sets the array.
     if(shape2.onSide==3){
      con.cont[yNum][xNum]=Tretiscontrol.colr;
      con.cont[yNum][xNum+1]=Tretiscontrol.colr;
      con.cont[yNum][xNum-1]=Tretiscontrol.colr;
      con.cont[yNum+1][xNum]=Tretiscontrol.colr;
     }
                                    //this draws the shape where it lands on the panel and sets the array.
     if(shape2.onSide==4){
      con.cont[yNum-2][xNum]=Tretiscontrol.colr;
      con.cont[yNum-1][xNum]=Tretiscontrol.colr;   //on its back pointing up
      con.cont[yNum][xNum]=Tretiscontrol.colr;
      con.cont[yNum-1][xNum-1]=Tretiscontrol.colr;
     }
    }
  }
  if(num==3){
  TretisShape3.num=3;
   shape3.paint(g);
   TretisPanel.shapeEnd=false;
   con.checkRow1();
   con.checkCols8(xNum);
   //con.cont[1][9]=Tretiscontrol.colr;
   if(reached==true){             
    if(shape3.onSide==true){                          //this draws the shape where it lands on the panel and sets the array.
     con.cont[yNum][xNum-1]=Tretiscontrol.colr;
     con.cont[yNum][xNum]=Tretiscontrol.colr;
     con.cont[yNum+1][xNum-1]=Tretiscontrol.colr;
     con.cont[yNum+1][xNum]=Tretiscontrol.colr;
    }
    if(shape3.onSide==false){                          //this draws the shape where it lands on the panel and sets the array.
     con.cont[yNum][xNum-1]=Tretiscontrol.colr;
     con.cont[yNum][xNum]=Tretiscontrol.colr;
     con.cont[yNum+1][xNum-1]=Tretiscontrol.colr;
     con.cont[yNum+1][xNum]=Tretiscontrol.colr;
     }
    }
  }
   if(num==4){
   TretisShape4.num=4;
   shape4.paint(g);
   TretisPanel.shapeEnd=false;
   con.checkRow1();
   if(shape4.onSide==false){con.checkCols9(xNum);}
   if(shape4.onSide==true){con.checkCols1(xNum);}
   //con.cont[1][9]=Tretiscontrol.colr;
   if(reached==true){                                 //this draws the shape where it lands on the panel and sets the array.
    if(shape4.onSide==true){
    con.cont[yNum+1][xNum]=Tretiscontrol.colr;
    con.cont[yNum][xNum]=Tretiscontrol.colr;
    con.cont[yNum][xNum+1]=Tretiscontrol.colr;
    con.cont[yNum+1][xNum-1]=Tretiscontrol.colr;
    }
    if(shape4.onSide==false){
    con.cont[yNum][xNum-1]=Tretiscontrol.colr;
    con.cont[yNum+1][xNum-1]=Tretiscontrol.colr;
    con.cont[yNum+1][xNum]=Tretiscontrol.colr;
    con.cont[yNum+2][xNum]=Tretiscontrol.colr;
    }
   }
  }
  if(num==5){
  TretisShape5.num=5;
   shape5.paint(g);
   TretisPanel.shapeEnd=false;
   con.checkRow1();
  if(shape5.onSide==false){con.checkCols2(xNum);}
  if(shape5.onSide==true){con.checkCols10(xNum);}
  if(reached==true){                                 //this draws the shape where it lands on the panel and sets the array.
   if(shape5.onSide==true){
  con.cont[yNum+1][xNum]=Tretiscontrol.colr;
  con.cont[yNum][xNum]=Tretiscontrol.colr;
  con.cont[yNum+1][xNum+1]=Tretiscontrol.colr;
  con.cont[yNum][xNum-1]=Tretiscontrol.colr;
   }
   if(shape5.onSide==false){
  con.cont[yNum][xNum+1]=Tretiscontrol.colr;
  con.cont[yNum+1][xNum+1]=Tretiscontrol.colr;
  con.cont[yNum+1][xNum]=Tretiscontrol.colr;
  con.cont[yNum+2][xNum]=Tretiscontrol.colr;
   }
  }
  }
  repaint();
    g.dispose();
   }
 @Override
 public void keyPressed(KeyEvent e) {
  if(e.getKeyCode()==KeyEvent.VK_LEFT){
   if(shape1.onSide==false){
   if(shape1.x3>20){         
   shape1.x1=shape1.x1-20;
   shape1.x2=shape1.x2-20;
   shape1.x3=shape1.x3-20;
   }
   }
   if(shape1.onSide==true){
   if(shape1.x3>60){         
    shape1.x1=shape1.x1-20;
    shape1.x2=shape1.x2-20;
    shape1.x3=shape1.x3-20;
    }
   }
   /*
    *      Shape 2 has to have different cooriinates for each position.
    */
   if(shape2.onSide==1){
   if(shape2.x3>20){
   shape2.x1=shape2.x1-20;
   shape2.x2=shape2.x2-20;
   shape2.x3=shape2.x3-20;
   shape2.x4=shape2.x4-20;
   }
   }
   if(shape2.onSide==2){
   if(shape2.x3>60){
    shape2.x1=shape2.x1-20;
    shape2.x2=shape2.x2-20;
    shape2.x3=shape2.x3-20;
    shape2.x4=shape2.x4-20;
   }
   }
   if(shape2.onSide==3){
    if(shape2.x3>40){
     shape2.x1=shape2.x1-20;
     shape2.x2=shape2.x2-20;
     shape2.x3=shape2.x3-20;
     shape2.x4=shape2.x4-20;
    }
   }
   if(shape2.onSide==4){
    if(shape2.x3>40){
     shape2.x1=shape2.x1-20;
     shape2.x2=shape2.x2-20;
     shape2.x3=shape2.x3-20;
     shape2.x4=shape2.x4-20;
    }
   }
   if(shape3.x3>40){
   shape3.x1=shape3.x1-20;
   shape3.x2=shape3.x2-20;
   shape3.x3=shape3.x3-20;
   shape3.x4=shape3.x4-20;
   }
   if(shape4.onSide==true){
    if(shape4.x3>40){
     shape4.x1=shape4.x1-20;
     shape4.x2=shape4.x2-20;
     shape4.x3=shape4.x3-20;
     shape4.x4=shape4.x4-20;
    }
   }
   if(shape4.onSide==false){
    if(shape4.x3>40){
     shape4.x1=shape4.x1-20;
     shape4.x2=shape4.x2-20;
     shape4.x3=shape4.x3-20;
     shape4.x4=shape4.x4-20;
    }
   }
   if(shape5.onSide==true){
    if(shape5.x3>40){
     shape5.x1=shape5.x1-20;
     shape5.x2=shape5.x2-20;
     shape5.x3=shape5.x3-20;
     shape5.x4=shape5.x4-20;
    }
   }
   if(shape5.onSide==false){
    if(shape5.x3>20){
     shape5.x1=shape5.x1-20;
     shape5.x2=shape5.x2-20;
     shape5.x3=shape5.x3-20;
     shape5.x4=shape5.x4-20;
    }
   }
  }
  if(e.getKeyCode()==KeyEvent.VK_RIGHT){
   if(shape1.x3<261){
    shape1.x1=shape1.x1+20;
    shape1.x2=shape1.x2+20;
    shape1.x3=shape1.x3+20;
   }
   if(shape2.onSide==1){
   if(shape2.x3<260){
    shape2.x1=shape2.x1+20;
    shape2.x2=shape2.x2+20;
    shape2.x3=shape2.x3+20;
    shape2.x4=shape2.x4+20;
   }
   }
   if(shape2.onSide==2){
   if(shape2.x3<280){
   shape2.x1=shape2.x1+20;
   shape2.x2=shape2.x2+20;
   shape2.x3=shape2.x3+20;
   shape2.x4=shape2.x4+20;
   }
   }
   if(shape2.onSide==3){
    if(shape2.x3<260){
    shape2.x1=shape2.x1+20;
    shape2.x2=shape2.x2+20;
    shape2.x3=shape2.x3+20;
    shape2.x4=shape2.x4+20;
    }
   }
   if(shape2.onSide==4){
    if(shape2.x3<280){
    shape2.x1=shape2.x1+20;
    shape2.x2=shape2.x2+20;
    shape2.x3=shape2.x3+20;
    shape2.x4=shape2.x4+20;
    }
   }
   if(shape3.x3<261){
   shape3.x1=shape3.x1+20;
   shape3.x2=shape3.x2+20;
   shape3.x3=shape3.x3+20;
   shape3.x4=shape3.x4+20;
   }
   if(shape4.onSide==true){
    if(shape4.x3<260){
     shape4.x1=shape4.x1+20;
     shape4.x2=shape4.x2+20;
     shape4.x3=shape4.x3+20;
     shape4.x4=shape4.x4+20;
    }
   }
   if(shape4.onSide==false){
    if(shape4.x3<280){
     shape4.x1=shape4.x1+20;
     shape4.x2=shape4.x2+20;
     shape4.x3=shape4.x3+20;
     shape4.x4=shape4.x4+20;
    }
   }
   if(shape5.onSide==true){
    if(shape5.x3<260){
    shape5.x1=shape5.x1+20;
    shape5.x2=shape5.x2+20;
    shape5.x3=shape5.x3+20;
    shape5.x4=shape5.x4+20;
    }
   }
    if(shape5.onSide==false){
     if(shape5.x3<260){
     shape5.x1=shape5.x1+20;
     shape5.x2=shape5.x2+20;
     shape5.x3=shape5.x3+20;
     shape5.x4=shape5.x4+20;
    }
    }
  }
  if(e.getKeyCode()==KeyEvent.VK_UP){
   ++spin;
   if(spin==1||spin==3){
    if(TretisPanel.shapeEnd==false){
    shape1.onSide=false;
    shape3.onSide=false;
    shape4.onSide=false;
    shape5.onSide=false;
    shape1.offSet=shape1.y2;         //offSet for 1
    shape1.offSet2=shape1.x2;
    shape4.offSet=shape4.y3;
    shape4.offSet2=shape4.x3;
    shape5.offSet=shape5.y3;
    shape5.offSet2=shape5.x3;
    if(shape4.onSide==false){
    shape4.shape();
    }
    if(shape1.onSide==false){
     shape1.bar();
    }
    if(shape1.onSide==false){
     shape3.square();
    }
    if(shape5.onSide==false){
     shape5.shape();
    }
    }
    System.out.println(spin);
   }
   if(spin==2||spin==4){
    if(TretisPanel.shapeEnd==false){
    shape1.onSide=true;
    shape3.onSide=true;
    shape4.onSide=true;
    shape5.onSide=true;
    shape1.offSet=shape1.y2;
    shape1.offSet2=shape1.x2;
    shape4.offSet=shape4.y3;
    shape4.offSet2=shape4.x3;
    shape5.offSet=shape5.y3;
    shape5.offSet2=shape5.x3;
    if(shape1.onSide==true){
     shape1.barOnItsSide();
    }
    if(shape1.onSide==true){
     shape3.square();
    }
    if(shape4.onSide==true){
    shape4.shapeOnItsSide();
    }
    if(shape5.onSide==true){
     shape5.shapeOnItsSide();
    }    
    }
   }
   System.out.println(" spin : "+spin);
   //shape2.onSide=1;
   if(firstShape==true){spin=2;} //bug fix
   if(spin==1&&spin !=3){
    System.out.println("   inside it now!");
    if(TretisPanel.shapeEnd==false){
    shape2.onSide=1;
    shape2.offSet=shape2.y2;
    shape2.offSet2=shape2.x2;
    //shape2.shapeTeeUp();
    shape2.shapeTeeRight();
    }
   }
   if(spin==2&&spin !=4){
    firstShape=false;  //bug fix
    if(TretisPanel.shapeEnd==false){
    shape2.onSide=2;
     shape2.offSet=shape2.y2;
     shape2.offSet2=shape2.x2;
    //shape2.shapeTeeRight();
    shape2.shapeTeeUp();
    }
   }
   if(spin==3&&spin !=1){
    if(TretisPanel.shapeEnd==false){
    shape2.onSide=3;
     shape2.offSet=shape2.y2;
     shape2.offSet2=shape2.x2;
    shape2.shapeTeeBottom();
    }
   }
   if(spin==4&&spin !=2){
   if(TretisPanel.shapeEnd==false){
    shape2.onSide=4;
    shape2.offSet=shape2.y2;
    shape2.offSet2=shape2.x2;
    shape2.shapeTeeLeft();
   spin=0;
   }
   }
  }
 }
 @Override
 public void keyReleased(KeyEvent e) {
  // TODO Auto-generated method stub
 }
 @Override
 public void keyTyped(KeyEvent e) {
  // TODO Auto-generated method stub
 }
 public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
 }
}
For class TetrisShape1
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public class TretisShape1 implements ActionListener {
public int x1,x2,x3,y1,y2,y3;
public int offSet,offSet2,dropDownTo;
public boolean onSide;
public static int num=0;
Timer time; 
 public TretisShape1(){
  onSide=true;
  if(TretisPanel.spin!=0){TretisPanel.spin=0;}
  time = new Timer(50,this);
  time.stop();// elements 6 7 8 
  coordinates();
 }
 public void coordinates(){
  //onSide=true;
  x1=120;
  x2=140;   
  x3=160;
  y1=60;
  y2=60;   
  y3=60;
  this.dropDownTo=500;
  // bug fix for spin 
  if(TretisPanel.spin==1){TretisPanel.spin=2;}
  if(TretisPanel.spin==3){TretisPanel.spin=0;}
  if(onSide==false){
   this.onSide=true;
  }
  TretisPanel.offSet = this.y2;
  TretisPanel.offSet2=this.x2;
 }
 public void paint(Graphics g){
  if(onSide==false){
   this.dropDownTo=TretisPanel.dropDownTo;
   if(y1>=dropDownTo+20){TretisPanel.shapeEnd=true;TretisPanel.num=2;coordinates();}
  }
  if(onSide==true){
   this.dropDownTo=TretisPanel.dropDownTo;
   if(y1>=dropDownTo+20){TretisPanel.shapeEnd=true;TretisPanel.num=2;coordinates();}
  }
  if(y1<dropDownTo+20){
   TretisPanel.reached=false; 
  y1=y1+1;
  y2=y2+1;
  y3=y3+1;
  }
  if(y1>=this.dropDownTo+20){
   TretisPanel.reached =true;
  }
  g.setColor(Color.cyan);
  Tretiscontrol.colr=1;
  g.fillRect(x1, y1, 20, 20);
  g.fillRect(x2, y2, 20, 20);
  g.fillRect(x3, y3, 20, 20);
  checkColumn();
  checkRow();
 }
 public void bar(){
  x1=offSet2;
  x2=offSet2;
  x3=offSet2;      // x1 and y1 are offSet
  y1=offSet+20;
  y2=offSet;                 
  y3=offSet-20;
 }
 public void barOnItsSide(){
  x1=offSet2-20;
  x2=offSet2;                 
  x3=offSet2+20;
  y1=offSet;
  y2=offSet;
  y3=offSet;
 }
 public void checkColumn(){
  if(onSide==false){
  switch(x3){
   case 20 :  TretisPanel.xNum = 1;break;
   case 40 :  TretisPanel.xNum = 2;break;
   case 60 : TretisPanel.xNum = 3;break;
   case 80 : TretisPanel.xNum = 4;break;
   case 100: TretisPanel.xNum = 5;break;
   case 120:  TretisPanel.xNum = 6;break;
   case 140:  TretisPanel.xNum = 7;break;
   case 160:  TretisPanel.xNum = 8;break;
   case 180:  TretisPanel.xNum = 9;break;
   case 200:  TretisPanel.xNum = 10;break;
   case 220:  TretisPanel.xNum = 11;break;
   case 240:  TretisPanel.xNum = 12;break;
   case 260:  TretisPanel.xNum = 13;break;
   case 280:  TretisPanel.xNum = 14;break;
  }
  }
  if(onSide==true){
   switch(x3){
    case 40 :  TretisPanel.xNum = 2;break;
    case 60 : TretisPanel.xNum = 3;break;
    case 80 : TretisPanel.xNum = 4;break;
    case 100: TretisPanel.xNum = 5;break;
    case 120:  TretisPanel.xNum = 6;break;
    case 140:  TretisPanel.xNum = 7;break;
    case 160:  TretisPanel.xNum = 8;break;
    case 180:  TretisPanel.xNum = 9;break;
    case 200:  TretisPanel.xNum = 10;break;
    case 220:  TretisPanel.xNum = 11;break;
    case 240:  TretisPanel.xNum = 12;break;
    case 260:  TretisPanel.xNum = 13;break;
    case 280:  TretisPanel.xNum = 14;break;
   }
   }
 }
public void checkRow(){
  switch(y1){
   case 40 :  TretisPanel.yNum = 2;break;
   case 60 : TretisPanel.yNum = 3;break;
   case 80 : TretisPanel.yNum = 4;break;
   case 100: TretisPanel.yNum = 5;break;
   case 120:  TretisPanel.yNum = 6;break;
   case 140:  TretisPanel.yNum = 7;break;
   case 160:  TretisPanel.yNum = 8;break;
   case 180:  TretisPanel.yNum = 9;break;
   case 200:  TretisPanel.yNum = 10;break;
   case 220:  TretisPanel.yNum = 11;break;
   case 240:  TretisPanel.yNum = 12;break;
   case 260:  TretisPanel.yNum = 13;break;
   case 280 :  TretisPanel.yNum = 14;break;
   case 300 : TretisPanel.yNum = 15;break;
   case 320: TretisPanel.yNum = 16;break;
   case 340: TretisPanel.yNum = 17;break;
   case 360:  TretisPanel.yNum = 18;break;
   case 380:  TretisPanel.yNum = 19;break;
   case 400:  TretisPanel.yNum = 20;break;
   case 420:  TretisPanel.yNum = 21;break;
   case 440:  TretisPanel.yNum = 22;break;
   case 460:  TretisPanel.yNum = 23;break;
   case 480:  TretisPanel.yNum = 24;break;
   case 500:  TretisPanel.yNum = 25;break;
   case 520:  TretisPanel.yNum = 26;break;
  }
 }
@Override
/*
 * 
 * 
 * (non-Javadoc)
 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
 */
public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
}
}
For class TetrisShape2
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public class TretisShape2 implements ActionListener {
public int x1,x2,x3,x4,y1,y2,y3,y4,onSide;
public int offSet,offSet2,dropDownTo;
public static boolean pointTop,pointBottom,pointLeft,pointRight;
public static int num=0;
Timer time;
 public TretisShape2(){
  coordinates();
 time = new Timer(40,this);
  time.stop();
 }
 public void coordinates(){
  this.onSide=1;
  x1=120;   //x2 and y2 is the offSet of 120
  x2=120;
  x3=120;
  x4=140;
  y1=100;        // elements 6 an 7
  y2=120;
  y3=140;
  y4=120;
  this.dropDownTo=500;
  TretisPanel.offSet=this.y2;
  TretisPanel.offSet2=this.x2;
 }
 public void paint(Graphics g){
  if(TretisPanel.spin==0){TretisPanel.firstShape=true;}   //bug fix
  g.setColor(Color.red);
  Tretiscontrol.colr=2;
  if(onSide==1){
   this.dropDownTo=TretisPanel.dropDownTo-20;
   if(y1>=dropDownTo){TretisPanel.shapeEnd=true;TretisPanel.num=3;coordinates();}
  }
  if(onSide==2){
   this.dropDownTo=TretisPanel.dropDownTo;
   if(y1>=dropDownTo){TretisPanel.shapeEnd=true;TretisPanel.num=3;coordinates();}
  }
  if(onSide==3){
   this.dropDownTo=TretisPanel.dropDownTo;
   if(y1>=dropDownTo){TretisPanel.shapeEnd=true;TretisPanel.num=3;coordinates();}
  }
  if(onSide==4){
   this.dropDownTo=TretisPanel.dropDownTo+20;
   if(y1>=dropDownTo){TretisPanel.shapeEnd=true;TretisPanel.num=3;coordinates();}
  }
  if(y1<dropDownTo){
   TretisPanel.reached=false; 
  y1=y1+1;
  y2=y2+1;
  y3=y3+1;
  y4=y4+1;
  }
  if(y1>=this.dropDownTo){
   TretisPanel.reached =true;
  }
  g.fillRect(x1, y1, 20, 20);
  g.fillRect(x2, y2, 20, 20);
  g.fillRect(x3, y3, 20, 20);
  g.fillRect(x4, y4, 20, 20);
  checkColumn();
  checkRow();
 }
 public void shapeTeeRight(){
  x1=offSet2;
  x2=offSet2;
  x3=offSet2;
  x4=offSet2+20;
  y1=offSet-20;
  y2=offSet;
  y3=offSet+20;
  y4=offSet;
 }
 public void shapeTeeBottom(){
  x1=offSet2-20;
  x2=offSet2;
  x3=offSet2;
  x4=offSet2+20;
  y1=offSet;
  y2=offSet;
  y3=offSet+20;
  y4=offSet;
 }
 public void shapeTeeLeft(){
  x1=offSet2;
  x2=offSet2;
  x3=offSet2;
  x4=offSet2-20;
  y1=offSet+20;
  y2=offSet;
  y3=offSet-20;
  y4=offSet;
 }
 public void shapeTeeUp(){
  x1=offSet2;
  x2=offSet2;
  x3=offSet2+20;
  x4=offSet2-20;
  y1=offSet-20;
  y2=offSet;
  y3=offSet;
  y4=offSet;
 }
 public void checkColumn(){
  switch(x3){
  case 20 :  TretisPanel.xNum = 1;break;
   case 40 :  TretisPanel.xNum = 2;break;
   case 60 : TretisPanel.xNum = 3;break;
   case 80 : TretisPanel.xNum = 4;break;
   case 100: TretisPanel.xNum = 5;break;
   case 120:  TretisPanel.xNum = 6;break;
   case 140:  TretisPanel.xNum = 7;break;
   case 160:  TretisPanel.xNum = 8;break;
   case 180:  TretisPanel.xNum = 9;break;
   case 200:  TretisPanel.xNum = 10;break;
   case 220:  TretisPanel.xNum = 11;break;
   case 240:  TretisPanel.xNum = 12;break;
   case 260:  TretisPanel.xNum = 13;break;
   case 280:  TretisPanel.xNum = 14;break;
  }
 }
public void checkRow(){
  switch(y1){
   case 40 :  TretisPanel.yNum = 2;break;
   case 60 : TretisPanel.yNum = 3;break;
   case 80 : TretisPanel.yNum = 4;break;
   case 100: TretisPanel.yNum = 5;break;
   case 120:  TretisPanel.yNum = 6;break;
   case 140:  TretisPanel.yNum = 7;break;
   case 160:  TretisPanel.yNum = 8;break;
   case 180:  TretisPanel.yNum = 9;break;
   case 200:  TretisPanel.yNum = 10;break;
   case 220:  TretisPanel.yNum = 11;break;
   case 240:  TretisPanel.yNum = 12;break;
   case 260:  TretisPanel.yNum = 13;break;
   case 280 :  TretisPanel.yNum = 14;break;
   case 300 : TretisPanel.yNum = 15;break;
   case 320: TretisPanel.yNum = 16;break;
   case 340: TretisPanel.yNum = 17;break;
   case 360:  TretisPanel.yNum = 18;break;
   case 380:  TretisPanel.yNum = 19;break;
   case 400:  TretisPanel.yNum = 20;break;
   case 420:  TretisPanel.yNum = 21;break;
   case 440:  TretisPanel.yNum = 22;break;
   case 460:  TretisPanel.yNum = 23;break;
   case 480:  TretisPanel.yNum = 24;break;
   case 500:  TretisPanel.yNum = 25;break;
   case 520:  TretisPanel.yNum = 26;break;
  }
 }
 @Override
 public void actionPerformed(ActionEvent arg0) {
  // TODO Auto-generated method stub
 } 
}
For TetrisShape3
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public class TretisShape3 implements ActionListener {
public int x1,x2,x3,x4,y1,y2,y3,y4;
public int offSet,offSet2;
public int dropDownTo;
public boolean onSide;
public static int num=0;
Timer time;
 public TretisShape3(){            // 7 and 8 elements
  onSide=true;
  coordinates();
  time = new Timer(30,this);
  time.stop();
 }
 public void paint(Graphics g){
  g.setColor(Color.yellow);
  Tretiscontrol.colr=3;
   this.dropDownTo=TretisPanel.dropDownTo;
   if(y1>=this.dropDownTo){TretisPanel.num=4;coordinates();}
   if(y1<this.dropDownTo){
    TretisPanel.reached=false; 
   y1=y1+1;
   y2=y2+1;
   y3=y3+1;
   y4=y4+1;
   }
   if(y1>=this.dropDownTo){
    TretisPanel.reached =true;
   }
  g.fillRect(x1, y1, 20, 20);
  g.fillRect(x2, y2, 20, 20);
  g.fillRect(x3, y3, 20, 20);
  g.fillRect(x4, y4, 20, 20);
  checkColumn();
  checkRow();  
 }
 public void coordinates(){
  x1=120;
  x2=140;
  x3=140;
  x4=120;
  y1=100;
  y2=100;
  y3=120;
  y4=120;
  this.dropDownTo=500;
  if(onSide==false){
   this.onSide=true;
  }
 }
 public void square(){
  coordinates();
 }
 public void checkColumn(){
  switch(x3){
   case 40 :  TretisPanel.xNum = 2;break;
   case 60 : TretisPanel.xNum = 3;break;
   case 80 : TretisPanel.xNum = 4;break;
   case 100: TretisPanel.xNum = 5;break;
   case 120:  TretisPanel.xNum = 6;break;
   case 140:  TretisPanel.xNum = 7;break;
   case 160:  TretisPanel.xNum = 8;break;
   case 180:  TretisPanel.xNum = 9;break;
   case 200:  TretisPanel.xNum = 10;break;
   case 220:  TretisPanel.xNum = 11;break;
   case 240:  TretisPanel.xNum = 12;break;
   case 260:  TretisPanel.xNum = 13;break;
   case 280:  TretisPanel.xNum = 14;break;
  }
 }
public void checkRow(){
  switch(y1){
  case 40 :  TretisPanel.yNum = 2;break;
  case 60 : TretisPanel.yNum = 3;break;
  case 80 : TretisPanel.yNum = 4;break;
  case 100: TretisPanel.yNum = 5;break;
  case 120:  TretisPanel.yNum = 6;break;
  case 140:  TretisPanel.yNum = 7;break;
  case 160:  TretisPanel.yNum = 8;break;
  case 180:  TretisPanel.yNum = 9;break;
  case 200:  TretisPanel.yNum = 10;break;
  case 220:  TretisPanel.yNum = 11;break;
  case 240:  TretisPanel.yNum = 12;break;
  case 260:  TretisPanel.yNum = 13;break;
  case 280 :  TretisPanel.yNum = 14;break;
  case 300 : TretisPanel.yNum = 15;break;
  case 320: TretisPanel.yNum = 16;break;
  case 340: TretisPanel.yNum = 17;break;
  case 360:  TretisPanel.yNum = 18;break;
  case 380:  TretisPanel.yNum = 19;break;
  case 400:  TretisPanel.yNum = 20;break;
  case 420:  TretisPanel.yNum = 21;break;
  case 440:  TretisPanel.yNum = 22;break;
  case 460:  TretisPanel.yNum = 23;break;
  case 480:  TretisPanel.yNum = 24;break;
  case 500:  TretisPanel.yNum = 25;break;
  case 520:  TretisPanel.yNum = 26;break;
  }
 }
@Override
public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 }
}
For class TetrisShape4
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public class TretisShape4 implements ActionListener {
public int x1,x2,x3,x4,y1,y2,y3,y4,spin;
 public int offSet,offSet2,dropDownTo;
 public boolean onSide,standingOffset=false;
 public static int num=0;
 Timer time;
 public TretisShape4(){
  onSide=true;
  coordinates();
  time = new Timer(20,this); 
  time.stop();
 }
 public void coordinates(){
  x1=140;           // elements 6 7 8
  x2=160;
  x3=140;
  x4=120;
  y1=40;
  y2=40;
  y3=60;
  y4=60;
  this.dropDownTo=500;
  if(onSide==false){
   this.onSide=true;
  }
  TretisPanel.offSet=this.y3;
  TretisPanel.offSet2=this.x3;
 }
 public void paint(Graphics g){
  g.setColor(Color.green);
  Tretiscontrol.colr=4;
  if(onSide==false){
   this.dropDownTo=TretisPanel.dropDownTo-20; 
   if(y1>=this.dropDownTo){TretisPanel.shapeEnd=true;TretisPanel.num=5;coordinates();}
  }
  if(onSide==true){          
   this.dropDownTo=TretisPanel.dropDownTo;
   if(y1>=this.dropDownTo){TretisPanel.shapeEnd=true;TretisPanel.num=5;coordinates();}
  }
  if(y1<this.dropDownTo){
   TretisPanel.reached=false;       //this is for drawing
    y1=y1+1;
    y2=y2+1;
    y3=y3+1;
    y4=y4+1;
  }
  if(y1>=this.dropDownTo){
   TretisPanel.reached =true;
  }
  g.fillRect(x1, y1, 20, 20);
  g.fillRect(x2, y2, 20, 20);
  g.fillRect(x3, y3, 20, 20);
  g.fillRect(x4, y4, 20, 20);
  checkColumn();
  checkRow();
 }
 public void shapeOnItsSide(){
  standingOffset=false;
  x1=offSet2;
  x2=offSet2+20;
  x3=offSet2;      //offSet x3 and y3
  x4=offSet2-20;
  y1=offSet-20;
  y2=offSet-20;
  y3=offSet;//120
  y4=offSet;
 }
 public void shape(){
  standingOffset=true;
  x1=offSet2-20;
  x2=offSet2-20;
  x3=offSet2;
  x4=offSet2;
  y1=offSet-20;
  y2=offSet;
  y3=offSet;
  y4=offSet+20;  
 }
 public void checkColumn(){
  if(onSide==true){
  switch(x3){
   case 40 :  TretisPanel.xNum = 2;break;
   case 60 : TretisPanel.xNum = 3;break;
   case 80 : TretisPanel.xNum = 4;break;
   case 100: TretisPanel.xNum = 5;break;
   case 120:  TretisPanel.xNum = 6;break;
   case 140:  TretisPanel.xNum = 7;break;
   case 160:  TretisPanel.xNum = 8;break;
   case 180:  TretisPanel.xNum = 9;break;
   case 200:  TretisPanel.xNum = 10;break;
   case 220:  TretisPanel.xNum = 11;break;
   case 240:  TretisPanel.xNum = 12;break;
   case 260:  TretisPanel.xNum = 13;break;
  }
  }
  if(onSide==false){
  switch(x3){
   case 40 :  TretisPanel.xNum = 2;break;
   case 60 : TretisPanel.xNum = 3;break;
   case 80 : TretisPanel.xNum = 4;break;
   case 100: TretisPanel.xNum = 5;break;
   case 120:  TretisPanel.xNum = 6;break;
   case 140:  TretisPanel.xNum = 7;break;
   case 160:  TretisPanel.xNum = 8;break;
   case 180:  TretisPanel.xNum = 9;break;
   case 200:  TretisPanel.xNum = 10;break;
   case 220:  TretisPanel.xNum = 11;break;
   case 240:  TretisPanel.xNum = 12;break;
   case 260:  TretisPanel.xNum = 13;break;
   case 280:  TretisPanel.xNum = 14;break;
  }
  }
 }
public void checkRow(){
  switch(y1){
   case 40 :  TretisPanel.yNum = 2;break;
   case 60 : TretisPanel.yNum = 3;break;
   case 80 : TretisPanel.yNum = 4;break;
   case 100: TretisPanel.yNum = 5;break;
   case 120:  TretisPanel.yNum = 6;break;
   case 140:  TretisPanel.yNum = 7;break;
   case 160:  TretisPanel.yNum = 8;break;
   case 180:  TretisPanel.yNum = 9;break;
   case 200:  TretisPanel.yNum = 10;break;
   case 220:  TretisPanel.yNum = 11;break;
   case 240:  TretisPanel.yNum = 12;break;
   case 260:  TretisPanel.yNum = 13;break;
   case 280 :  TretisPanel.yNum = 14;break;
   case 300 : TretisPanel.yNum = 15;break;
   case 320: TretisPanel.yNum = 16;break;
   case 340: TretisPanel.yNum = 17;break;
   case 360:  TretisPanel.yNum = 18;break;
   case 380:  TretisPanel.yNum = 19;break;
   case 400:  TretisPanel.yNum = 20;break;
   case 420:  TretisPanel.yNum = 21;break;
   case 440:  TretisPanel.yNum = 22;break;
   case 460:  TretisPanel.yNum = 23;break;
   case 480:  TretisPanel.yNum = 24;break;
   case 500:  TretisPanel.yNum = 25;break;
   case 520:  TretisPanel.yNum = 26;break;
  }
 }
@Override
public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
}
}
For class TetrisShape5
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public class TretisShape5 implements ActionListener {
 Timer time;
public int x1,x2,x3,x4,y1,y2,y3,y4;
public int offSet,offSet2,dropDownTo;
public boolean onSide,standingOffset=false;
public static int num=0;
 public TretisShape5(){
  onSide=true;
  coordinates();
  time = new Timer(10,this);
  time.stop();
 }
 public void coordinates(){
  x1=120;
  x2=140;
  x3=140;
  x4=160;
  y1=40;           // elements 6 7 8
  y2=40;
  y3=60;
  y4=60;
  this.dropDownTo=500;
  if(onSide==false){
   this.onSide=true;
  }
  TretisPanel.offSet2=this.x3;
  TretisPanel.offSet=this.y3;
 }
 public void paint(Graphics g){
  if(onSide==false){
   this.dropDownTo=TretisPanel.dropDownTo-20;
   if(y1>=this.dropDownTo){TretisPanel.shapeEnd=true;TretisPanel.num=1;coordinates();}
  }
  if(onSide==true){ 
   this.dropDownTo=TretisPanel.dropDownTo;
   if(y1>=this.dropDownTo){TretisPanel.shapeEnd=true;TretisPanel.num=1;coordinates();}
  }
  if(y1<this.dropDownTo){
   TretisPanel.reached=false;
   y1=y1+1;
   y2=y2+1;
   y3=y3+1;
   y4=y4+1;
  }
  if(y1>=this.dropDownTo){
   TretisPanel.reached =true;
  }
  g.setColor(Color.blue);
  Tretiscontrol.colr=5;
  //Tretiscontrol.col=x3;
  //Tretiscontrol.row=this.dropDownTo;
  int nums=0;
  g.fillRect(x1, y1, 20, 20);
  g.fillRect(x2, y2, 20, 20);
  g.fillRect(x3, y3, 20, 20);
  g.fillRect(x4, y4, 20, 20);
  checkColumn();
  checkRow();
 }
 public void shape(){
 standingOffset=true;
  x1=offSet2+20;
  x2=offSet2+20;
  x3=offSet2;
  x4=offSet2;
  y1=offSet-40;
  y2=offSet-20;
  y3=offSet;
  y4=offSet-20;
 }
 public void shapeOnItsSide(){
 standingOffset=false;
  x1=offSet2-20;
  x2=offSet2;
  x3=offSet2;
  x4=offSet2+20;
  y1=offSet-20;
  y2=offSet-20;
  y3=offSet;
  y4=offSet;
 }
 public void checkColumn(){
  if(onSide==true){
   switch(x3){
    case 40 :  TretisPanel.xNum = 2;break;
    case 60 : TretisPanel.xNum = 3;break;
    case 80 : TretisPanel.xNum = 4;break;
    case 100: TretisPanel.xNum = 5;break;
    case 120:  TretisPanel.xNum = 6;break;
    case 140:  TretisPanel.xNum = 7;break;
    case 160:  TretisPanel.xNum = 8;break;
    case 180:  TretisPanel.xNum = 9;break;
    case 200:  TretisPanel.xNum = 10;break;
    case 220:  TretisPanel.xNum = 11;break;
    case 240:  TretisPanel.xNum = 12;break;
    case 260:  TretisPanel.xNum = 13;break;
   }
   }
 if(onSide==false){
   switch(x3){
   case 20 :  TretisPanel.xNum = 1;break;
    case 40 :  TretisPanel.xNum = 2;break;
    case 60 : TretisPanel.xNum = 3;break;
    case 80 : TretisPanel.xNum = 4;break;
    case 100: TretisPanel.xNum = 5;break;
    case 120:  TretisPanel.xNum = 6;break;
    case 140:  TretisPanel.xNum = 7;break;
    case 160:  TretisPanel.xNum = 8;break;
    case 180:  TretisPanel.xNum = 9;break;
    case 200:  TretisPanel.xNum = 10;break;
    case 220:  TretisPanel.xNum = 11;break;
    case 240:  TretisPanel.xNum = 12;break;
    case 260:  TretisPanel.xNum = 13;break;
    case 280:  TretisPanel.xNum = 14;break;
   }
   }
 }
public void checkRow(){
  switch(y1){
   case 40 :  TretisPanel.yNum = 2;break;
   case 60 : TretisPanel.yNum = 3;break;
   case 80 : TretisPanel.yNum = 4;break;
   case 100: TretisPanel.yNum = 5;break;
   case 120:  TretisPanel.yNum = 6;break;
   case 140:  TretisPanel.yNum = 7;break;
   case 160:  TretisPanel.yNum = 8;break;
   case 180:  TretisPanel.yNum = 9;break;
   case 200:  TretisPanel.yNum = 10;break;
   case 220:  TretisPanel.yNum = 11;break;
   case 240:  TretisPanel.yNum = 12;break;
   case 260:  TretisPanel.yNum = 13;break;
   case 280 :  TretisPanel.yNum = 14;break;
   case 300 : TretisPanel.yNum = 15;break;
   case 320: TretisPanel.yNum = 16;break;
   case 340: TretisPanel.yNum = 17;break;
   case 360:  TretisPanel.yNum = 18;break;
   case 380:  TretisPanel.yNum = 19;break;
   case 400:  TretisPanel.yNum = 20;break;
   case 420:  TretisPanel.yNum = 21;break;
   case 440:  TretisPanel.yNum = 22;break;
   case 460:  TretisPanel.yNum = 23;break;
   case 480:  TretisPanel.yNum = 24;break;
   case 500:  TretisPanel.yNum = 25;break;
   case 520:  TretisPanel.yNum = 26;break;
  }
 }
@Override
public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
}
}
For class Tetriscontrol
public class Tretiscontrol{
  public int[][] cont;
  public static int colr=0,row=1,col=1;
  int num1,num2;
  private boolean rowCompleted=false;
 public boolean test;
 public Tretiscontrol(){
  num1=0;
  num2=0;
  test=false;
  cont= new int[27][15];//bug add extra one to row from 6 to seven as col 7 was not being accessed.
  int num = 0;
  for(int row=1;row<27;row++){
   for(int col=1;col<15;col++){
    num++;
    if(num>5)num=num-6;
    cont[row][col]=0;
   }
  }
  for(int numb=1;numb<15;numb++){
   //cont[5][numb]=2;
  }
 }
 public void checkCols1(int x3){      
  int x=x3;      //green onits side
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j][x-1]>0||cont[j-1][x+1]>0){
    if(test==false){  // 2 x squares chec
    num1=j;
    test=true;
    TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  } 
 }
 public void checkCols2(int x3){
  int x=x3;                            // red tee shape to the right      and blue standing up
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j-1][x+1]>0){
    if(test==false){  // 2 x squares checks
    num1=j;
    test=true;
    TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  }
 }
 public void checkCols3(int x3){
  int x=x3;                            // red tee shape to the left
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j-1][x-1]>0){
    if(test==false){  // 2 x squares checks
    num1=j;
    test=true;
    TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  }
 }
 public void checkCols4(int x3){      //  red tee up 3 x the same y
  int x=x3-1;
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j][x+1]>0||cont[j][x-1]>0){
    if(test==false){  //thats  a start
    num1=j;
    test=true;
    TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  }
 }
 public void checkCols5(int x3){      //  blue shape 5 onits side
  int x=x3;
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j][x+1]>0||cont[j-1][x-1]>0){
    if(test==false){  //thats  a start
    num1=j;
    test=true;
    if(cont[j-1][x-1]>0){
    TretisPanel.dropDownTo=((num1-2)*20);
    }
    else TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  } 
 }
 public void checkCols6(int x3){      //  for red tee down shape
  int x=x3;
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j-1][x-1]>0||cont[j-1][x+1]>0){
    if(test==false){  //thats  a start
    num1=j;
    test=true;
    if(cont[j-1][x-1]>0){
    TretisPanel.dropDownTo=((num1-2)*20);
    }
    else TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  } 
 }
 public void checkCols7(int x3){
  int x=x3;                            // bar standing up
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0){
    if(test==false){  
    num1=j;
    test=true;
    TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  }
 }
 public void checkCols8(int x3){
  int x=x3;                            // The square
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j][x-1]>0){
    if(test==false){  
    num1=j;
    test=true;
    TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  }
 }
 public void checkCols9(int x3){      
  int x=x3;      //green Stabding up
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j-1][x-1]>0){
    if(test==false){  // 2 x squares chec
    num1=j;
    test=true;
    TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  } 
 }
 public void checkCols10(int x3){      
  int x=x3;      //green onits side
  test=false;
  TretisPanel.dropDownTo=500;
  for(int j = 1;j<27;j++){
   if(cont[j][x]>0||cont[j][x+1]>0||cont[j-1][x-1]>0){
    if(test==false){  // 2 x squares chec
    num1=j;
    test=true;
    TretisPanel.dropDownTo=((num1-2)*20);
    }
   }
  } 
 }
 //check Rows for Completion
 int completedRow=1;
 public void checkRow1(){
   for(int i =1;i<27;i++){
    completedRow=0;
    for(int j = 1; j <15;j++){
     if(cont[i][j]!=0){
       completedRow++;
      if(completedRow==14){
       makeRow100(i);
      }
     }
    }
   }
 }
 int zeroRow = 1;
 public void checkCompletedRows(){
  if(rowCompleted==true){
   for(int i =26;i>0;i--){    //this counts down from 26 to 1
    if(cont[i][0]==100){
     for(int j =0;j<15;j++){
     cont[i][j]=cont[i-1][j];
     cont[i-1][0]=100;//////////////////////////////////////////////////////////////////
     }
    }
   }
  }
 }
 public void makeRow100(int row){
  int r = row;
  for(int num=0;num<15;num++){
   cont[r][num]=100;
   rowCompleted=true;
  }
  moveDownTo100(r);
 } 
 //make row zero will have to call move row down again until it reaches 1
 public void moveDownTo100(int row){
  int r = row;
  checkCompletedRows();
 }
}
4.) Run the code and enjoy.
For any doubt, query and suggestion just drop a comment in the comment section. 
Peace.
Comments
Post a Comment