import java.applet.Applet;
import java.awt.*;
public class l1 extends Applet implements Runnable{
Image pilt, sahver;
Graphics piltg, sahverg;
Thread tr=null;
int koht=0, pikkus=500, korgus=500;
int kohtx[]={1, 3, 5, 7, 9, 12, 14, 15, 16, 16,
              17, 18, 18, 19, 19, 20, 20, 20, 20, 20 };
int kohty[]={0, 1, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9,
              10, 11, 13, 15, 17, 20, 23, 26, 28, 30};
Color varvid[]=new Color[5];
public void init(){
varvid[0]=Color.red;
varvid[1]=Color.green;
varvid[2]=Color.blue;
varvid[3]=Color.black;
pilt=createImage(pikkus, korgus);
sahver=createImage(pikkus, korgus);
piltg=pilt.getGraphics();
sahverg=sahver.getGraphics();
a1();
}

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

public void stop(){tr=null;}
public void run(){
while(tr!=null){
 edasi();
try{ tr.sleep(100);} catch(Exception e){}
if(koht%20==1)try{tr.sleep(1000);}catch(Exception e){}
}
}

public void joonistaL(int arv, Graphics g, int x, int y){
 for(int i=0; i<arv; i++){
 g.drawRect(x, y-(i+1)*20,18, 18);
 g.drawRect(x+i*20, y-20, 18, 18);
 }

}

public int arv(int n){
 if(n==0) return 0;
 if(n==1) return 1;
 else return n+arv(n-1);
}

public void a1(){

 for(int i=1; i<5; i++){
  joonistaL(i+1, piltg, 30, 30+70*i+20*arv(i));

 }
 repaint();

}

public void edasi(){
if (koht % 20 ==0){
sahverg.setColor(Color.white);
 sahverg.fillRect(0, 0, pikkus, korgus);
 for(int i=1+koht/20; i<4; i++){
  sahverg.setColor(varvid[i]);
 joonistaL(i+1, sahverg, 30, 30+70*i+20*arv(i)); 
 }
 }
piltg.drawImage(sahver, 0, 0, this);
//int kohtx=koht%20;
//int kohty=arv(koht%20)/12;
for(int i=0; i<koht/20+1; i++){
 piltg.setColor(varvid[i]);
 joonistaL(i+1,piltg, 30+(koht/20-i)*20+kohtx[koht%20],
           30+70*koht/20+20*arv(koht/20)-(koht/20-i)*20+koht%20*(
           ((koht/20)*20)/20) );}

repaint();
if(koht++>=60){koht=0;
try{tr.sleep(5000);}catch(Exception e){}}
}


public void paint(Graphics g){
g.drawImage(pilt, 0, 0, this);
}
public void update(Graphics g){paint(g);}

}
