import java.awt.*; import java.awt.image.*; public class Saba{ int tosta, tulija, sabureid, platvormil, vahe, actual; int i1, i2, i3; int tiksuja, sabavali, kraanamin, kraanamax, sabai; Graphics sabagr; ImageObserver sabaob; Image autopilt1, autopilt2, pink, pink2, lill; Rectangle sabar; Auto masin[]=new Auto[20]; Kraana kraana=new Kraana(); public int liigu(){ int il1; i2=tosta; lisa(); for(il1=0; il1(vahe*20)){masin[i2].edasi();} else {if(masin[i2].koht==100){masin[i2].edasi(); platvormil=1;}} i2++; if(i2==20){i2=0;} } if(1==(kraana.liigu(masin[tosta>0?tosta-1:19], platvormil, sabagr))) {tosta++; sabagr.drawImage(pink, 365, 100, sabaob); platvormil=0; sabureid--; if(tosta==20){tosta=0;} kraana.juua=10*((actual=(kraanamin+ ((int)(Math.random()*(kraanamax-kraanamin)))))-8);}; return sabureid; } public void seasabavali(int vali1){sabavali=vali1; sabai=sabavali*10;} public void seakraanamin(int vali2){kraanamin=vali2;} public void seakraanamax(int vali3){kraanamax=vali3;} public void seaautopilt(Image img1, Image img2, Graphics g, ImageObserver ob) {autopilt1=img1; autopilt2=img2; sabaob=ob; g.drawImage(autopilt1, 365, 100, sabaob); g.drawImage(autopilt2, 365, 100, sabaob);} public void seakraanapilt(Image img, Image img2, Graphics g){pink=img; pink2=img2; g.drawImage(pink2, 365, 100, sabaob); g.drawImage(pink, 365, 100, sabaob); } public void sealillepilt(Image img){lill=img;} public void ava(){ for(i1=0; i1<20; i1++) {masin[i1]=new Auto(); masin[i1].seapilt(autopilt1, autopilt2, sabaob);} kraana=new Kraana(); kraana.alga(); kraana.seakonks(pink, pink2, sabaob, sabagr); sabureid=1; tosta=0; tulija=1; masin[0].koht=1; sabai=80;} public void lisa(){ if(sabureid<6){ if(sabai==0){sabai=sabavali*10; sabureid++; masin[tulija].koht=1; tulija++; if(tulija==20){tulija=0;} } sabai--;} } public void seagraafika(Graphics g){sabagr=g;} public void seaobs(ImageObserver obs){sabaob=obs;} public void seanelinurk(Rectangle r){sabar=r;} public void joonista(){ int i, koht, ax, ay; for(i=0; i<20; i++){ ax=-100; ay=-100; koht=masin[i].koht; if((koht>0)&(koht<101)){ax=koht*3; ay=150;} if((koht>100)&(koht<111)){ax=300; ay=150-10*(koht-101);} if((koht>110)&(koht<121)){ax=300+15*(koht-110); ay=50;} if((koht>120)&(koht<126)){ax=450; ay=50+(12*(koht-120));} if((koht>125)&(koht<156)){ax=450; ay=110;} if((koht>155)&(koht<161)){ax=450; ay=110-(12*(koht-155));} if((koht>160)&(koht<171)){ax=450+10*(koht-160); ay=50;} if((koht>170)&(koht<181)){ax=550; ay=50+16*(koht-170);} if((koht>180)&(koht<240)){ax=550+3*(koht-180); ay=210;} if((ax>-100)&(ay>-100)){masin[i].liiguta(sabagr, ax, ay);} } ax=-100; ay=-100; koht=kraana.koht; if((koht>100)&(koht<111)){ax=200; ay=200-10*(koht-101);} if((koht>110)&(koht<131)){ax=200+3*(koht-110); ay=110;} if((koht>130)&(koht<142)){ax=260; ay=110+(10*(koht-130));} //if((ax>-100)&(ay>-100)){kraana.joonista(sabagr, ax, ay);} kraana.mees.joonista(sabagr); } public void liiguta(){ int i, koht, ax, ay; for(i=0; i<20; i++){ ax=-100; ay=-100; koht=masin[i].koht; if((koht>0)&(koht<101)){ax=koht*3; ay=150;} if((koht>100)&(koht<111)){ax=300; ay=150-10*(koht-101);} if((koht>110)&(koht<121)){ax=300+15*(koht-110); ay=50;} if((koht>120)&(koht<126)){ax=450; ay=50+(15*(koht-120));} if((koht>155)&(koht<161)){ax=450; ay=125-(15*(koht-155));} if((koht>160)&(koht<171)){ax=450+10*(koht-160); ay=50;} if((koht>170)&(koht<181)){ax=550; ay=50+16*(koht-170);} if((koht>180)&(koht<240)){ax=550+3*(koht-180); ay=210;} if((ax>-100)&(ay>-100)){masin[i].liiguta(sabagr, ax, ay);} } ax=-100; ay=-100; koht=kraana.koht; if((koht>100)&(koht<111)){ax=200; ay=200-10*(koht-101);} if((koht>110)&(koht<131)){ax=200+3*(koht-110); ay=110;} if((koht>130)&(koht<142)){ax=260; ay=110+(10*(koht-130));} if((ax>-100)&(ay>-100)){kraana.liiguta(sabagr, ax, ay);} kraana.mees.liiguta(sabagr); } public void pilt(){ if(kraana.koht<102){sabagr.drawImage(pink, 365, 100, sabaob);} else{sabagr.drawImage(pink2, 365, 100, sabaob);} sabagr.drawLine(0, 183, 340, 183); sabagr.drawLine(0, 203, 340, 203); sabagr.drawOval(330, 183, 20, 20); sabagr.drawLine(280, 40, 630, 40); sabagr.drawLine(290, 120, 290, 40); sabagr.drawLine(620, 120, 620, 40); } }