
*** Modified files in JOE when it aborted on Wed Nov 18 11:53:07 1998
*** JOE was aborted because the terminal closed

*** File '(Unnamed)'
25

*** File 'mota4321.java'
import java.applet.Applet;
import java.awt.*;
public class mota4321 extends Applet implements Runnable{
 sona sonad[]=new sona[30];
 int juhud[]=new int[30];
 Image pilt, sahver;
 Graphics piltg, sahverg;
 Thread tr;
 int pikkus, korgus, tkoht=0, lihtnr=0, isekoht=890;
 String liht[]=new String[8];
 Button nupp=new Button();
 Label l1=new Label(), 
l2=new Label("Assumptions:");
Panel p1=new Panel(), p2=new Panel();

public void init(){
 liht[0]="Birthrate and deathrate are constant";
 liht[1]="Food and space sufficient";
 liht[2]="No fishing by man";
 liht[3]="Population is known at some time";
 liht[4]="No predation";
 liht[5]="No differentiation between age and sex";
 liht[6]="No migration";
 liht[7]="Perfect Seas for fish";
 p1.setLayout(new GridLayout(2, 1));
 p1.add(l2);
 p1.add(nupp);
 setLayout(new BorderLayout());
  add("South",p1);
  //nupp.hide(); //l1.hide(); l2.hide();
  Dimension d=this.size();
  pilt=createImage(d.width, d.height);
  piltg=pilt.getGraphics();
  sahver=createImage(d.width, d.height);
  sahverg=sahver.getGraphics();
  sahverg.setColor(Color.white);
  sahverg.fillRect(0, 0, 400, 400);
  /*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[0]=new sona(piltg, "Fish", 100, 100);
  sonad[1]=new sona(piltg, "Sex", 80, 80);
  sonad[2]=new sona(piltg, "Age", 180, 80);
  sonad[3]=new sona(piltg, "Health", 80, 120);
  sonad[4]=new sona(piltg, "Fertility", 180, 120);
  sonad[5]=new sona(piltg, "migration", 192, 100);
  sonad[6]=new sona(piltg, "Food", 40, 70);
  sonad[7]=new sona(piltg, "space", 140, 65);
  sonad[8]=new sona(piltg, "predators", 30, 130);
  sonad[9]=new sona(piltg, "", 60, 142);

  sonad[10]=new sona(piltg, "Sea" , 200, 150);
  sonad[11]=new sona(piltg, "size", 180, 130);
  sonad[12]=new sona(piltg, "pollution", 180, 170);
  sonad[13]=new sona(piltg, "temperature", 280, 132);
  sonad[14]=new sona(piltg, "salinity", 280, 168);
  sonad[15]=new sona(piltg, "position", 290, 120);
  sonad[16]=new sona(piltg, "", 270, 160);
  sonad[17]=new sona(piltg, "", 260, 175);
  sonad[18]=new sona(piltg, "", 170, 150);
  sonad[19]=new sona(piltg, "", 190, 140);
  sonad[20]=new sona(piltg, "Drivers", 50, 220);
  sonad[21]=new sona(piltg, "sex", 40, 205);
  sonad[22]=new sona(piltg, "age", 35, 235);
  sonad[23]=new sona(piltg, "temperament", 80, 208);
  sonad[24]=new sona(piltg, "time", 100, 232);
    

 for(int i=0; i<16; i++) {sonad[i].varv(Color.black);}
  vahetused();
 repaint();
}

void ilmne(){
System.out.println("ilmneb tkoht="+tkoht);
 sonad[juhud[tkoht]].varv(Color.black);
 sonad[juhud[tkoht++]].joonista();
repaint();
}

void vahetused(){
int koht=1, a, b, abi;
 for(int i=0; i<23; i++){
 juhud[i]=koht++;if(koht==10)koht++; if(koht==20)koht++;}
// for(int i=0; i<25; i++)System.out.println(juhud[9]);
 for(int i=0; i<100; i++){
  a=(int)(Math.random()*22);
  b=(int)(Math.random()*22);
  abi=juhud[a]; juhud[a]=juhud[b]; juhud[b]=abi;
 } 
}

public void start(){tr=new Thread(this); tr.start();}
public void run(){
 int i;
 while(tr!=null){
//  System.out.println("isekoht="+isekoht);
 if (isekoht<22){
isekoht++; ilmne();
}
if(isekoht==22)isekoht=900;
if(isekoht==900){
 for(i=0; i<10; i++)sonad[i].jkoht(10, 20+15*i);
 for(i=10; i<16; i++)sonad[i].jkoht(120, 20+15*i-150);
// for(i=20; i<25; i++)sonad[i].jkoht(250, 20+15*i-300);
}
/* if(isekoht<1050){
 piltg.setColor(Color.white);
for(int j=0; j<40; j++)piltg.fillRect(j*10, 0, 10, 400);
 piltg.setColor(Color.black);
  if(isekoht<950){
   if (isekoht==900)for(i=0; i<10; i++)sonad[i].suund(10, 20+15*i, 200);
   for(i=0; i<10; i++)sonad[i].edasi();
   for(i=10; i<16; i++)sonad[i].servliigu();}
  else if(isekoht<1000){
   if (isekoht==950)for(i=10; i<20; i++)sonad[i].suund(120, 20+15*i-150, 150);
   for(i=0; i<16; i++)sonad[i].edasi();
 }
  else if(isekoht<1050){
   if (isekoht==1000)//for(i=20; i<25; i++)sonad[i].suund(250, 20+15*i-300, 100);
   for(i=0; i<16; i++)sonad[i].edasi();}
 // try{tr.sleep(2);} catch(Exception e){}
  }
 else
 if (isekoht<1100){
 piltg.setColor(Color.white);
for(int j=0; j<40; j++)piltg.fillRect(j*10, 0, 10, 400);
piltg.setColor(Color.black);
  for(i=0; i<16; i++)sonad[i].edasi();
  //    try{tr.sleep(20);  } catch(Exception e){}
      } 
 else*/
 if (isekoht==1100){
 nupp.show(); //l1.show(); l2.show();
System.out.println("nupp naha");
// nupp.move(350, 200); 
nupp.setLabel(liht[0]);
 }
if(isekoht==3000){
 piltg.setColor(Color.white);
for(int j=0; j<40; j++)piltg.fillRect(j*10, 0, 10, 400);
piltg.setColor(Color.black);
sonad[13].joonista(); sonad[15].joonista();
sonad[17].joonista(); sonad[18].joonista();
sonad[13].suund(75, 170, 200); sonad[15].suund(75, 185, 200);
sonad[17].suund(75, 200, 200); sonad[18].suund(75, 215, 200);
for(i=0; i<200; i++){
 piltg.setColor(Color.white);
 for(int j=0; j<40; j++)piltg.fillRect(j*10, 0, 10, 400);
 piltg.setColor(Color.black);

 sonad[13].edasi(); sonad[15].edasi();
                         sonad[17].edasi(); sonad[18].edasi();
                         repaint();
 try{tr.sleep(20);}catch(Exception e){}
                         }
 piltg.setColor(Color.white);
 for(int j=0; j<40; j++)piltg.fillRect(j*10, 0, 10, 400);
 piltg.setColor(Color.black);
piltg.drawString("Revised list", 40, 130);

piltg.drawString("Length of vehicle", 75, 170);
piltg.drawString("Speed  of vehicle", 75, 185);
piltg.drawString("Separation distance", 75, 200);
piltg.drawString("Flow", 75, 215);

piltg.drawString("l  m", 240, 170);
piltg.drawString("v  m/s", 240, 185);
piltg.drawString("d  m", 240, 200);
piltg.drawString("f  vehicle/sec", 240, 215);
repaint();
tr=null;
 }


 if((isekoht<1200)&(isekoht>22))isekoht++;
 if(isekoht<=1100) 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(isekoht<25){isekoht++; nupp.hide();}
else
{
if(lihtnr==0){
  sonad[3].muudavarv(Color.yellow);
  sonad[4].muudavarv(Color.yellow);
  piltg.setColor(Color.black);
  piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);
  nupp.setLabel(liht[lihtnr]);
  }
else if(lihtnr==1){
 sonad[6].muudavarv(Color.yellow);
 sonad[7].muudavarv(Color.yellow);
 sonad[10].muudavarv(Color.yellow);
  piltg.setColor(Color.black);   piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);
  nupp.setLabel(liht[lihtnr]);
  }
else if(lihtnr==2){
  piltg.setColor(Color.black);   piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);
  nupp.setLabel(liht[lihtnr]);
  }	
else if(lihtnr==3){
  piltg.setColor(Color.black);   piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);
  nupp.setLabel(liht[lihtnr]);

  }
else if(lihtnr==4){sonad[8].muudavarv(Color.yellow);
  piltg.setColor(Color.black);   piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);
  nupp.setLabel(liht[lihtnr]);

  }
else if(lihtnr==5){sonad[1].muudavarv(Color.yellow);
sonad[2].muudavarv(Color.yellow);
  piltg.setColor(Color.black);   piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);
  nupp.setLabel(liht[lihtnr]);

  }
else if(lihtnr==6){sonad[5].muudavarv(Color.yellow);
  piltg.setColor(Color.black);   piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);
  nupp.setLabel(liht[lihtnr]);

  }
else if(lihtnr==7){
sonad[12].muudavarv(Color.yellow);
sonad[11].muudavarv(Color.yellow);sonad[13].muudavarv(Color.yellow);sonad[14].muudavarv(Color.yellow);
 
nupp.hide(); l1.hide(); l2.hide();
  piltg.setColor(Color.black);   piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);
  isekoht=3000;
  }
 }   }
repaint();
return true;
}

}
