import java.applet.Applet;
import java.awt.*;
public class mote extends Applet implements Runnable{
 sona sonad[]=new sona[30];
 int juhud=new int[12];
 Image pilt;
 Graphics piltg;
 Thread tr;
 int pikkus, korgus, tkoht=0, lihtnr=0;
 String liht[]=new String[4];
 Button nupp=new Button("OK");
 Label l1=new Label(), 
l2=new Label("Selgema mudeli koostamiseks tuleb teha moned lihtsustused");
Panel p1=new Panel(), p2=new Panel();
public void init(){
 liht[0]="Silla ehitus on ideaalne";
 liht[1]="Autod soidavad uhes suunas ning reas";
 liht[3]="Autod on hesugused";
 liht[4]="Inimesed ei eksi";
l1.setText(liht[0]);
  p1.setLayout(new BorderLayout());
  p1.add("Center", l1);
  p1.add("East", nupp);
  p2.setLayout(new GridBagLayout(1, 2);
  p2.add(l2);
  p2.add(p1);
  nupp.hide(); l1.hide(); l2.hide();
  this.setLayout(new BorderLayout());
  add("South", p2);
  Dimension d=this.size();
  pilt=createImage(d.x, d.y);
  piltg=pilt.getGraphics();
  sonad[ 0]=new sona(piltg, "Sild", 100, 100);
  sonad[5]=new sona(piltg, "Masin", 300, 100);
  sonad[10]=new sona(piltg, "Inimene", 200, 300);
  for(int i=0; i<15; i+=5){sonad[i ].varv(Color.red);
    sonad[i].joonista();} 
  
  sonad[1]=new sona(piltg, "Teekate", 80, 80);
  sonad[2]=new sona(piltg, "Silla pikkus", 180, 80);
  sonad[3]=new sona(piltg, "Laius", 80, 120);
  sonad[4]=new sona(piltg, "Looklevus", 180, 120);
  
  sonad[6]=new sona(piltg, "Kiirus", 280, 80);
  sonad[7]=new sona(piltg, "Pikkus", 380, 80);
  sonad[8]=new sona(piltg, "Mark", 280, 120);
  sonad[9]=new sona(piltg, "Pikivahe", 380, 120);

  sonad[11]=new sona(piltg, "Vanus", 80, 80);
  sonad[12]=new sona(piltg, "Sugu", 180, 80);
  sonad[13]=new sona(piltg, "Mass", 80, 80);
  sonad[14]=new sona(piltg, "Laste arv", 80, 80);
 repaint();
}

void ilmne(){
 sonad[juhud[tkoht++]].joonista();
}

void vahetused(){
int koht=0, a, b, abi;
 for(int i=1; i<4; i++)for(int j=0; j<4; j++) 
 juhud[koht++]=i+(i-1)*4+j;
 for(int i=0; i<100; i++){
  a=(int)(Math.random()*12);
  b=(int)(Math.random()*12);
  abi=juhud[a]; juhud[a]=juhud[b]; juhud[b]=abi;
 } 
}

public void start(){tr=new Thread(this); tr.start();}
public void run(){
 int isekoht=0;
 while(tr!=null){
 if (isekoht<12){ilmne(); tr.sleep(500);} else
 if (isekoht==12)for(int i=0; i<15; i++)sonad[i].juhusuund(); else
 if (isekoht<200){ 
 piltg.setColor(Color.white);
 piltg.fillRect(0, 0, 500, 500);
 for(int i=0; i<15; i++)sonad[i].servliigu();
     tr.sleep(200);} else
 if (isekoht==200)for(int i=0; i<15; i++)sonad[i].suund(10, 15*i, 50); else
 if (isekoht<250){
  piltg.setColor(Color.white);
  piltg.fillRect(0, 0, 500, 500);
  for(int i=0; i<15; i++)sonad[i].edasi();} 
 else
 if (isekoht==250){for(int i=0; i<15; i++)sonad[i].jkoht(10, 15*i);
 nupp.show(); l1.show(); l2.show();
   }
 if(isekoht<250)isekoht++;              
 repaint();
}}
public void stop(){tr=null;}
public void paint(Graphics g){
 g.drawImage(pilt, 0, 0, this);
}
public void update(Graphics g){paint(g);} 
public boolean action(Event e, Object arg){
 if (e.target.equals(nupp){
if(lihtnr++==0){sonad[1].muudavarv(Color.gray); sonad[4].muudavarv(Color.gray); }
if(lihtnr++==1){sonad[3].muudavarv(Color.gray);}
if(lihtnr++==2){sonad[8].muudavarv(Color.gray);}
if(lihtnr++==3){for(int i=11; i<15; i++)sonad[i].muudavarv(Color.gray);}
if(lihtnr==4){nupp.hide(); l1.hide(); l2.hide();}
 }

}

}
