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 ) ;
}
}
