import java.applet.Applet; import java.awt.*; public class Mota 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=0; String liht[]=new String[5]; 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]="Tunnel is perfect condition, no curves"; liht[1]="Drivers behave perfectly and they have no accidents"; liht[2]="All vechiles are in pervect condition, same type"; liht[3]="Speed and separation distance of vechiles is constant"; liht[4]="Flow is continous"; /*l1.setText(liht[0]); p1.setLayout(new BorderLayout()); p1.add("Center", l1); p1.add("East", nupp); p2.setLayout(new GridLayout(1, 2)); p2.add(l2); p2.add(p1); this.setLayout(new BorderLayout());*/ add(nupp); // 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, "Tunnel", 100, 100); sonad[1]=new sona(piltg, "length", 80, 80); sonad[2]=new sona(piltg, "height", 180, 80); sonad[3]=new sona(piltg, "width", 80, 120); sonad[4]=new sona(piltg, "1 way/2 ways", 180, 120); sonad[5]=new sona(piltg, "lighting", 192, 100); sonad[6]=new sona(piltg, "ventilation", 40, 70); sonad[7]=new sona(piltg, "curves", 140, 65); sonad[8]=new sona(piltg, "surface", 30, 130); sonad[9]=new sona(piltg, "inclanation", 60, 142); sonad[10]=new sona(piltg, "Vechiles" , 200, 150); sonad[11]=new sona(piltg, "type", 180, 130); sonad[12]=new sona(piltg, "size", 180, 170); sonad[13]=new sona(piltg, "length", 280, 132); sonad[14]=new sona(piltg, "age", 280, 168); sonad[15]=new sona(piltg, "speed", 290, 120); sonad[16]=new sona(piltg, "accidents", 270, 160); sonad[17]=new sona(piltg, "separator distance", 260, 175); sonad[18]=new sona(piltg, "flow", 170, 150); sonad[19]=new sona(piltg, "weigth", 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<25; i+=10) {sonad[i].varv(Color.red); sonad[i].joonista();} 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){ if (isekoht<22){ System.out.println("isekoht="+isekoht); if(!((isekoht==10)|(isekoht==20))){isekoht++;ilmne();} else {nupp.setLabel("More"); nupp.show();} try{tr.sleep(500);} catch(Exception e){}} else if (isekoht==22){for(i=0; i<25; i++)sonad[i].juhusiht();isekoht++;} else if (isekoht<900){ if (isekoht==600)isekoht=800; 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<25; i++){sonad[i].servliigu(); } try{tr.sleep(20); } catch(Exception e){} repaint(); } else 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<25; 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<20; i++)sonad[i].edasi(); for(i=20; i<25; i++)sonad[i].servliigu();} 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<25; i++)sonad[i].edasi();} try{tr.sleep(20);} 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<25; 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); } 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("Field list", 40, 130); piltg.drawString("Length of veschile", 75, 170); piltg.drawString("Speed of veschile", 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 veschile/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){for(int i=1; i<10; i++)sonad[i].muudavarv(Color.gray); piltg.setColor(Color.black); piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);} else if(lihtnr==1){ sonad[3].muudavarv(Color.gray); sonad[16].muudavarv(Color.gray); sonad[20].muudavarv(Color.gray); sonad[21].muudavarv(Color.gray); sonad[22].muudavarv(Color.gray); sonad[24].muudavarv(Color.gray); piltg.setColor(Color.black); piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);} else if(lihtnr==2){ sonad[11].muudavarv(Color.gray); sonad[12].muudavarv(Color.gray); sonad[14].muudavarv(Color.gray); sonad[19].muudavarv(Color.gray); piltg.setColor(Color.black); piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);} else if(lihtnr==3){sonad[23].muudavarv(Color.gray); piltg.setColor(Color.black); piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr);} else if(lihtnr==4){nupp.hide(); l1.hide(); l2.hide(); piltg.setColor(Color.black); piltg.drawString(liht[lihtnr++],20, 200+15*lihtnr); isekoht=3000;} } } repaint(); return true; } }