import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class n_box extends Applet implements Runnable{

   Thread th = null;
   Image os;
   Graphics og;
   int lv = 1,nn;
   int td[][] = new int[3][7];
   int cx[] = new int[9],cy[] = new int[9];
   int px,py;
   Choice cho = new Choice();
   Button rep;
   Label spa;

   public void init(){

      os = createImage(480,270);
      og = os.getGraphics();

      setLayout(new BorderLayout());
      Panel pan = new Panel();
      pan.setLayout(new FlowLayout());
      pan.add(rep = new Button("  replay  "));
      pan.add(spa = new Label("       "));
      pan.add(cho);
      cho.addItem("    3 x 3    ");
      cho.addItem("    5 x 3    ");
      cho.addItem("    7 x 3    ");
      cho.addItemListener(new MyListener());
      add("South",pan);
      rep.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
            d_set();
            repaint();
         }
      });

      d_set();
      addMouseListener(
         new MouseAdapter(){
            public void mousePressed(MouseEvent e){
               px = e.getX();
               py = e.getY();
               if(((px-(cx[0]*60+60))<(py-(cy[0]*60+60)))&&((px-(cx[0]*60+60))<(-(py-(cy[0]*60+60))))){
                  if(cx[0] > 0){
                     switch (td[cy[0]][cx[0]]){
                        case 1  : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 1 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ;
                                  }else if(td[cy[0]][cx[0]-1] == 2){
                                     td[cy[0]][cx[0]-1] = 3 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ;
                                  }else if(td[cy[0]][cx[0]-1] == 32){
                                     td[cy[0]][cx[0]-1] = 33 ; td[cy[0]][cx[0]] = 0 ;
                                     if((cx[0]-1 == cx[5])&&(cy[0] == cy[5])){
                                        nn = 5;
                                     }else{
                                        nn = 7;
                                     }
                                     cx[0] = cx[0] - 1 ;
                                  }else if(td[cy[0]][cx[0]-1] == 34){
                                     td[cy[0]][cx[0]-1] = 35 ; td[cy[0]][cx[0]] = 0 ;
                                     if((cx[0]-1 == cx[5])&&(cy[0] == cy[5])){
                                        nn = 5;
                                     }else{
                                        nn = 7;
                                     }
                                     cx[0] = cx[0] - 1 ;
                                  }
                                  break ;
                        case 3  : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 3 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ; cx[1] = cx[1] - 1 ;
                                  }else if(td[cy[0]][cx[0]-1] == 32){
                                     td[cy[0]][cx[0]-1] = 35 ; td[cy[0]][cx[0]] = 0 ;
                                     if((cx[0]-1 == cx[5])&&(cy[0] == cy[5])){
                                        nn = 5;
                                     }else{
                                        nn = 7;
                                     }
                                     cx[0] = cx[0] - 1 ; cx[1] = cx[1] - 1 ;
                                  }
                                  break ;
                        case 5  : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 5 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ; cx[2] = cx[2] - 1 ;
                                  }
                                  break ;
                        case 9  : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 9 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ; cx[3] = cx[3] - 1 ;
                                  }
                                  break ;
                        case 11 : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 11 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ; cx[1] = cx[1] - 1 ; cx[3] = cx[3] -1 ;
                                  }
                                  break ;
                        case 17 : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 17 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ; cx[4] = cx[4] - 1 ;
                                  }
                                  break ;
                        case 19 : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 19 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ; cx[1] = cx[1] - 1 ; cx[4] = cx[4] -1 ;
                                  }
                                  break ;
                        case 33 : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 33 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ; cx[nn] = cx[nn] - 1 ;
                                  }
                                  break ;
                        case 35 : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 35 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] - 1 ; cx[1] = cx[1] - 1 ; cx[nn] = cx[nn] -1 ;
                                  }
                                  break ;
                        case 65 : if(td[cy[0]][cx[0]-1] == 0){
                                     td[cy[0]][cx[0]-1] = 1 ; td[cy[0]][cx[0]] = 64 ;
                                     cx[0] = cx[0] - 1 ;
                                  }else if(td[cy[0]][cx[0]-1] == 2){
                                     td[cy[0]][cx[0]-1] = 3 ; td[cy[0]][cx[0]] = 64 ;
                                     cx[0] = cx[0] - 1 ;
                                  }else if(td[cy[0]][cx[0]-1] == 32){
                                     td[cy[0]][cx[0]-1] = 33 ; td[cy[0]][cx[0]] = 64 ;
                                     if((cx[0]-1 == cx[5])&&(cy[0] == cy[5])){
                                        nn = 5;
                                     }else{
                                        nn = 7;
                                     }
                                     cx[0] = cx[0] - 1 ;
                                  }else if(td[cy[0]][cx[0]-1] == 34){
                                     td[cy[0]][cx[0]-1] = 35 ; td[cy[0]][cx[0]] = 64 ;
                                     if((cx[0]-1 == cx[5])&&(cy[0] == cy[5])){
                                        nn = 5;
                                     }else{
                                        nn = 7;
                                     }
                                     cx[0] = cx[0] - 1 ;
                                  }
                                  break ;
                     }
                  }
               }else if(((px-(cx[0]*60+60))>(py-(cy[0]*60+60)))&&((px-(cx[0]*60+60))<(-(py-(cy[0]*60+60))))){
                  if(cy[0] > 0){
                     switch (td[cy[0]][cx[0]]){
                        case 1  : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 1 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ;
                                  }else if(td[cy[0]-1][cx[0]] == 4){
                                     td[cy[0]-1][cx[0]] = 5 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ;
                                  }else if(td[cy[0]-1][cx[0]] == 8){
                                     td[cy[0]-1][cx[0]] = 9 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ;
                                  }
                                  break ;
                        case 3  : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 3 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[1] = cy[1] - 1 ;
                                  }else if(td[cy[0]-1][cx[0]] == 4){
                                     td[cy[0]-1][cx[0]] = 7 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[1] = cy[1] - 1 ;
                                  }else if(td[cy[0]-1][cx[0]] == 8){
                                     td[cy[0]-1][cx[0]] = 11 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[1] = cy[1] - 1 ;
                                  }
                                  break ;
                        case 5  : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 5 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[2] = cy[2] - 1 ;
                                  }
                                  break ;
                        case 9  : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 9 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[3] = cy[3] - 1 ;
                                  }
                                  break ;
                        case 11 : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 11 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[1] = cy[1] - 1 ; cy[3] = cy[3] - 1 ;
                                  }
                                  break ;
                        case 17 : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 1 ; td[cy[0]][cx[0]] = 16 ;
                                     cy[0] = cy[0] - 1 ;
                                  }else if(td[cy[0]-1][cx[0]] == 4){
                                     td[cy[0]-1][cx[0]] = 5 ; td[cy[0]][cx[0]] = 16 ;
                                     cy[0] = cy[0] - 1 ;
                                  }else if(td[cy[0]-1][cx[0]] == 8){
                                     td[cy[0]-1][cx[0]] = 9 ; td[cy[0]][cx[0]] = 16 ;
                                     cy[0] = cy[0] - 1 ;
                                  }
                                  break ;
                        case 19 : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 3 ; td[cy[0]][cx[0]] = 16 ;
                                     cy[0] = cy[0] - 1 ; cy[1] = cy[1] - 1 ; 
                                  }else if(td[cy[0]-1][cx[0]] == 4){
                                     td[cy[0]-1][cx[0]] = 7 ; td[cy[0]][cx[0]] = 16 ;
                                     cy[0] = cy[0] - 1 ; cy[1] = cy[1] - 1 ; 
                                  }else if(td[cy[0]-1][cx[0]] == 8){
                                     td[cy[0]-1][cx[0]] = 11 ; td[cy[0]][cx[0]] = 16 ;
                                     cy[0] = cy[0] - 1 ; cy[1] = cy[1] - 1 ; 
                                  }
                                  break ;
                        case 33 : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 33 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[nn] = cy[nn] - 1 ;
                                  }
                                  break ;
                        case 35 : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 35 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[1] = cy[1] - 1 ; cy[nn] = cy[nn] - 1 ;
                                  }
                                  break ;
                        case 65 : if(td[cy[0]-1][cx[0]] == 0){
                                     td[cy[0]-1][cx[0]] = 65 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] - 1 ; cy[nn] = cy[nn] - 1 ;
                                  }
                                  break ;
                     }
                  }
               }else if(((px-(cx[0]*60+60))<(py-(cy[0]*60+60)))&&((px-(cx[0]*60+60))>(-(py-(cy[0]*60+60))))){
                  if(cy[0] < 2){
                     switch (td[cy[0]][cx[0]]){
                        case 1  : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 1 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ;
                                  }else if(td[cy[0]+1][cx[0]] == 16){
                                     td[cy[0]+1][cx[0]] = 17 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ;
                                  }
                                  break ;
                        case 3  : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 3 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ; cy[1] = cy[1] + 1 ;
                                  }else if(td[cy[0]+1][cx[0]] == 16){
                                     td[cy[0]+1][cx[0]] = 19 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ; cy[1] = cy[1] + 1 ;
                                  }
                                  break ;
                        case 5  : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 1 ; td[cy[0]][cx[0]] = 4 ;
                                     cy[0] = cy[0] + 1 ;
                                  }else if(td[cy[0]+1][cx[0]] == 16){
                                     td[cy[0]+1][cx[0]] = 17 ; td[cy[0]][cx[0]] = 4 ;
                                     cy[0] = cy[0] + 1 ;
                                  }
                                  break ;
                        case 9  : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 1 ; td[cy[0]][cx[0]] = 8 ;
                                     cy[0] = cy[0] + 1 ;
                                  }else if(td[cy[0]+1][cx[0]] == 16){
                                     td[cy[0]+1][cx[0]] = 17 ; td[cy[0]][cx[0]] = 8 ;
                                     cy[0] = cy[0] + 1 ;
                                  }
                                  break ;
                        case 11 : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 3 ; td[cy[0]][cx[0]] = 8 ;
                                     cy[0] = cy[0] + 1 ; cy[1] = cy[1] + 1 ;
                                  }else if(td[cy[0]+1][cx[0]] == 16){
                                     td[cy[0]+1][cx[0]] = 19 ; td[cy[0]][cx[0]] = 8 ;
                                     cy[0] = cy[0] + 1 ; cy[1] = cy[1] + 1 ;
                                  }
                                  break ;
                        case 17 : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 17 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ; cy[4] = cy[4] + 1 ;
                                  }
                                  break ;
                        case 19 : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 19 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ; cy[1] = cy[1] + 1 ; cy[4] = cy[4] + 1 ;
                                  }
                                  break ;
                        case 33 : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 33 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ; cy[nn] = cy[nn] + 1 ;
                                  }
                                  break ;
                        case 35 : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 35 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ; cy[1] = cy[1] + 1 ; cy[nn] = cy[nn] + 1 ;
                                  }
                                  break ;
                        case 65 : if(td[cy[0]+1][cx[0]] == 0){
                                     td[cy[0]+1][cx[0]] = 65 ; td[cy[0]][cx[0]] = 0 ;
                                     cy[0] = cy[0] + 1 ; cy[nn] = cy[nn] + 1 ;
                                  }
                                  break ;
                     }
                  }
               }else if(((px-(cx[0]*60+60))>(py-(cy[0]*60+60)))&&((px-(cx[0]*60+60))>(-(py-(cy[0]*60+60))))){
                  if(cx[0] < 6){
                     switch (td[cy[0]][cx[0]]){
                        case 1  : if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 1 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] + 1 ;
                                  }else if(td[cy[0]][cx[0]+1] == 64){
                                     td[cy[0]][cx[0]+1] = 65 ; td[cy[0]][cx[0]] = 0 ;
                                     if((cx[0]+1 == cx[6])&&(cy[0] == cy[6])){
                                        nn = 6;
                                     }else{
                                        nn = 8;
                                     }
                                     cx[0] = cx[0] + 1 ;
                                  }
                                  break ;
                        case 3  : if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 1 ; td[cy[0]][cx[0]] = 2 ;
                                     cx[0] = cx[0] + 1 ;
                                  }else if(td[cy[0]][cx[0]+1] == 64){
                                     td[cy[0]][cx[0]+1] = 65 ; td[cy[0]][cx[0]] = 2 ;
                                    if((cx[0]+1 == cx[6])&&(cy[0] == cy[6])){
                                        nn = 6;
                                     }else{
                                        nn = 8;
                                     }
                                     cx[0] = cx[0] + 1 ;
                                  }
                                  break ;
                        case 5  : if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 5 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] + 1 ; cx[2] = cx[2] + 1 ;
                                  }
                                  break ;
                        case 9  : if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 9 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] + 1 ; cx[3] = cx[3] + 1 ;
                                  }
                                  break ;
                        case 11 : if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 11 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] + 1 ; cx[1] = cx[1] + 1 ; cx[3] = cx[3] + 1 ;
                                  }
                                  break ;
                        case 17 : if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 17 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] + 1 ; cx[4] = cx[4] + 1 ;
                                  }
                                  break ;
                        case 19 :if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 19 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] + 1 ; cx[1] = cx[1] + 1 ; cx[4] = cx[4] + 1 ;
                                  }
                                  break ;
                        case 33 :if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 1 ; td[cy[0]][cx[0]] = 32 ;
                                     cx[0] = cx[0] + 1 ;
                                  }else if(td[cy[0]][cx[0]+1] == 64){
                                     td[cy[0]][cx[0]+1] = 65 ; td[cy[0]][cx[0]] = 32 ;
                                    if((cx[0]+1 == cx[6])&&(cy[0] == cy[6])){
                                        nn = 6;
                                     }else{
                                        nn = 8;
                                     }
                                     cx[0] = cx[0] + 1 ;
                                  }
                                  break ;
                        case 35 : if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 1 ; td[cy[0]][cx[0]] = 34 ;
                                     cx[0] = cx[0] + 1 ;
                                  }else if(td[cy[0]][cx[0]+1] == 64){
                                     td[cy[0]][cx[0]+1] = 65 ; td[cy[0]][cx[0]] = 34 ;
                                    if((cx[0]+1 == cx[6])&&(cy[0] == cy[6])){
                                        nn = 6;
                                     }else{
                                        nn = 8;
                                     }
                                     cx[0] = cx[0] + 1 ;
                                  }
                                  break ;
                        case 65 : if(td[cy[0]][cx[0]+1] == 0){
                                     td[cy[0]][cx[0]+1] = 65 ; td[cy[0]][cx[0]] = 0 ;
                                     cx[0] = cx[0] + 1 ; cx[nn] = cx[nn] + 1 ;
                                  }
                                  break ;
                     }
                  }
               }
               repaint();
            }
         } 
      );

   }
   class MyListener implements ItemListener{
      public void itemStateChanged(ItemEvent e){
         Choice cho = (Choice)e.getSource();
         switch(cho.getSelectedIndex()){
            case 0 : lv = 1 ; d_set() ; repaint() ; break;
            case 1 : lv = 2 ; d_set() ; repaint() ; break;
            case 2 : lv = 3 ; d_set() ; repaint() ; break;
         }
      }
   }

   public void paint(Graphics g){
      og.setColor(Color.white);
      og.fillRect(0,0,480,270);

      og.setColor(new Color(255,255,128));
      for(int x1 = 0;x1 < lv*2+1;x1 ++){
         for(int y1 = 0;y1 < 3;y1 ++){
            og.fill3DRect((x1+3-lv)*60+30,y1*60+30,60,60,true);
         }
      }
      og.setColor(Color.red);
      og.fillRect(cx[1]*60+45,cy[1]*60+45,30,5);
      og.fillRect(cx[1]*60+45,cy[1]*60+45,5,30);
      og.fillRect(cx[1]*60+45,cy[1]*60+70,30,5);
      og.setColor(Color.blue);
      og.fillRect(cx[2]*60+35,cy[2]*60+35,50,5);
      og.fillRect(cx[2]*60+35,cy[2]*60+35,5,50);
      og.fillRect(cx[2]*60+80,cy[2]*60+35,5,50);
      og.setColor(Color.black);
      og.fillRect(cx[3]*60+35,cy[3]*60+35,50,5);
      og.fillRect(cx[3]*60+35,cy[3]*60+35,5,50);
      og.fillRect(cx[3]*60+80,cy[3]*60+35,5,50);
      og.fillRect(cx[4]*60+35,cy[4]*60+35,5,50);
      og.fillRect(cx[4]*60+80,cy[4]*60+35,5,50);
      og.fillRect(cx[4]*60+35,cy[4]*60+80,50,5);
      if((lv == 2)||(lv == 3)){
         og.fillRect(cx[5]*60+35,cy[5]*60+35,5,50);
         og.fillRect(cx[5]*60+35,cy[5]*60+35,50,5);
         og.fillRect(cx[5]*60+35,cy[5]*60+80,50,5);
         og.fillRect(cx[6]*60+35,cy[6]*60+35,50,5);
         og.fillRect(cx[6]*60+80,cy[6]*60+35,5,50);
         og.fillRect(cx[6]*60+35,cy[6]*60+80,50,5);
      }
      if(lv == 3){
         og.fillRect(cx[7]*60+35,cy[7]*60+35,5,50);
         og.fillRect(cx[7]*60+35,cy[7]*60+35,50,5);
         og.fillRect(cx[7]*60+35,cy[7]*60+80,50,5);
         og.fillRect(cx[8]*60+35,cy[8]*60+35,50,5);
         og.fillRect(cx[8]*60+80,cy[8]*60+35,5,50);
         og.fillRect(cx[8]*60+35,cy[8]*60+80,50,5);
      }
      for(int c1 = 0;c1 < 11;c1 ++){
         og.setColor(new Color(0,c1*15+100,c1*15+100));
         og.fillOval(cx[0]*60+50+c1,cy[0]*60+50+c1,20-c1*2,20-c1*2);
      }
      if(td[cy[0]][cx[0]] == 7){
         og.setFont(new Font("",Font.BOLD,60));
         og.setColor(Color.black);
         og.drawString("clear!!",162,138);
         og.setColor(Color.red);
         og.drawString("clear!!",160,140);
      }
      g.drawImage(os,0,0,this);
   }

   public void start(){
      if(th == null){
         th = new Thread(this);
         th.start();
      }
   }

   public void d_set(){
      cx[0] = 3 ; cy[0] = 1 ;
      cx[3] = 3 ; cy[3] = 0 ;
      cx[4] = 3 ; cy[4] = 2 ;
      cy[1] = 1 ; cy[2] = 1 ;
      cy[5] = 1 ; cy[6] = 1 ;
      cy[7] = 1 ; cy[8] = 1 ;
      switch (lv) {
         case 1 : cx[1] = 2 ; cx[2] = 4 ; break ;
         case 2 : cx[1] = 1 ; cx[2] = 5 ; cx[5] = 2 ; cx[6] = 4 ; break ;
         case 3 : cx[1] = 0 ; cx[2] = 6 ; cx[5] = 2 ; cx[6] = 4 ; cx[7] = 1 ; cx[8] = 5 ; break ;
      }
      for(int y1 = 0;y1 < 3;y1 ++){
         for(int x1 = 0;x1 < 7;x1 ++){
            switch (lv) {
               case 1 : if((x1 < 2)||(x1 > 4)){
                           td[y1][x1] = -1;
                        }else{
                           td[y1][x1] = 0;
                        }
                        break ;
               case 2 : if((x1 < 1)||(x1 > 5)){
                           td[y1][x1] = -1;
                        }else{
                           td[y1][x1] = 0;
                        }
                        break ;
               case 3 : td[y1][x1] = 0 ; break ;
            }
         }
      }
      td[cy[0]][cx[0]] = td[cy[0]][cx[0]] + 1;
      td[cy[1]][cx[1]] = td[cy[1]][cx[1]] + 2;
      td[cy[2]][cx[2]] = td[cy[2]][cx[2]] + 4;
      td[cy[3]][cx[3]] = td[cy[3]][cx[3]] + 8;
      td[cy[4]][cx[4]] = td[cy[4]][cx[4]] + 16;
      if(lv > 1){
         td[cy[5]][cx[5]] = td[cy[5]][cx[5]] + 32;
         td[cy[6]][cx[6]] = td[cy[6]][cx[6]] + 64;
      }
      if(lv > 2){
         td[cy[7]][cx[7]] = td[cy[7]][cx[7]] + 32;
         td[cy[8]][cx[8]] = td[cy[8]][cx[8]] + 64;
      }
   }

   public void stop(){
      th = null;
   }

   public void run(){
      while(th != null){
         try{
            Thread.sleep(100);
         }
         catch (InterruptedException e){
         }
      }
   }

   public void update( Graphics g ){
      paint( g ) ;
   }
}