import java.applet.*; import java.awt.*; public class ca extends Applet{ Image pilt; Graphics piltg; asi as[]=new asi[30]; asi as2a, asi3a, asi3b, asi4a, asi4b; asi e2[]=new asi[3]; asi e3[]=new asi[4]; asi e4[]=new asi[10]; int sees2=0, sees3=0, sees4=0; boolean kolmlaud=false, nelilaud=false, raamvaba=true; int sb2[]=new int[3]; int sb3[]=new int[4]; int sb4[]={100, 2, 100, 4, 100, 6, 100, 8, 100, 100}; Button n2=new Button("The Head Waiter"); Button n3=new Button("The Waiter"); Button n4=new Button("The Table"); raam rm=new raam(this); Panel np=new Panel(); boolean sb1[]=new boolean[12]; int anr=0, avnr=0, uvnr=100, uv=100, av=100, uenr=100; Color kaesvarv=Color.green, valivarv=Color.red; public void init(){ sb2[0]=2; sb2[1]=100; sb2[2]=10; sb3[0]=6; sb3[1]=100; sb3[2]=100; sb3[3]=4; pilt=createImage(500, 500); piltg=pilt.getGraphics(); piltg.setColor(Color.black); np.setLayout(new GridLayout(1, 3)); np.add(n2); np.add(n3); np.add(n4); np.setBackground(Color.white); this.setLayout(new BorderLayout()); add("South", np); asjad1(); } void asjad1(){ as[anr]=new asi("ruut", 30, 0, 70, 35); as[anr].lisatekst("Customer", 5, 15); as[anr].lisatekst("Arrival", 5, 26); anr++; as[anr]=new asi("ring", 120, 0, 70, 35); as[anr].lisatekst("Wait", 12, 15); as[anr].lisatekst("for table", 10, 26); anr++; as[anr]=new asi("ruut", 220, 0, 70, 35); as[anr].lisatekst("Be", 10, 15); as[anr].lisatekst("Seated", 10, 26); anr++; as[anr]=new asi("ring", 310, 0, 50, 35); as[anr].lisatekst("Wait", 12, 15); as[anr++].lisatekst("to ord.", 10, 26); as[anr]=new asi("ruut", 430, 0, 69, 35); as[anr].lisatekst("Give", 5, 15); as[anr].lisatekst("Order", 5, 26); anr++; as[anr]=new asi("ring", 440, 50, 50, 35); as[anr].lisatekst("Wait", 12, 15); as[anr].lisatekst("Meal", 10, 26); anr++; as[anr]=new asi("ruut", 430, 100, 69, 35); as[anr].lisatekst("Serve", 10, 15); as[anr].lisatekst("meal", 10, 26); anr++; as[anr]=new asi("ring", 450, 150, 30, 30); anr++; as[anr]=new asi("ruut", 430, 200, 69, 35); as[anr].lisatekst("Eat", 10, 15); as[anr].lisatekst("Meal", 10, 26); anr++; as[anr]=new asi("ring", 200, 200, 50, 35); as[anr].lisatekst("Wait", 12, 15); as[anr].lisatekst("Pay", 10, 26); anr++; as[anr]=new asi("ruut", 30, 200, 70, 35); as[anr].lisatekst("Pay", 12, 15); as[anr].lisatekst("for meal", 10, 26); anr++; as[anr]=new asi("ring", 0, 100, 50, 30); as[anr].lisatekst("World", 8, 17); anr++; for(int i=0; i0){if(as2a.sees(x,y)){unr=1; uvnr=2;}} if(sees3>0){if(asi3a.sees(x, y)){unr=1; uvnr=3;} if(asi3b.sees(x, y)&!nelilaud){unr=2; uvnr=3;}} if(sees4>0){if(asi4a.sees(x, y)&!kolmlaud){unr=1; uvnr=4;} if(asi4b.sees(x, y)){unr=2; uvnr=4;}} if(unr<100){ if((uv<100)&(uenr<100)) if(uenr==1)as[uv].joonista(piltg, Color.black); if(uenr==2)as2a.joonista(piltg, Color.black); if(uenr==3){if(uv==1)asi3a.joonista(piltg, Color.black); if(uv==2)asi3b.joonista(piltg, Color.black); } if(uenr==4){if(uv==1)asi4a.joonista(piltg, Color.black); if(uv==2)asi4b.joonista(piltg, Color.black); } if(uvnr==1)as[unr].joonista(piltg, Color.gray); if(uvnr==2)as2a.joonista(piltg, Color.gray); if(uvnr==3){if(unr==1)asi3a.joonista(piltg, Color.gray); if(unr==2)asi3b.joonista(piltg, Color.gray); } if(uvnr==4){if(unr==1)asi4a.joonista(piltg, Color.gray); if(unr==2)asi4b.joonista(piltg, Color.gray); } uenr=uvnr; uv=unr; repaint(); }} else{ if(avnr==2){for(i=0; i<3; i++)if(e2[i].sees(x, y))unr=i; if(unr<100)if(sb2[unr]==80) unr=100;} if(avnr==3){for(i=0; i<4; i++)if(e3[i].sees(x, y))unr=i; if(unr<100)if(sb3[unr]==80) unr=100; if(unr<100) if(unr==2&kolmlaud)unr=100;} if(avnr==4){for(i=0; i<10; i++)if(e4[i].sees(x, y))unr=i; if(unr<100)if(sb4[unr]==80) unr=100; if(unr<100) if(unr==9&nelilaud)unr=100;} if(unr<100){ if(av<100){ if(avnr==2)if(sb2[av]!=80)e2[av].joonista(piltg, Color.black); if(avnr==3)if(sb3[av]!=80)e3[av].joonista(piltg, Color.black); if(avnr==4)if(sb4[av]!=80)e4[av].joonista(piltg, Color.black); } if(avnr==2){e2[unr].joonista(piltg, Color.gray);} if(avnr==3)e3[unr].joonista(piltg, Color.gray); if(avnr==4)e4[unr].joonista(piltg, Color.gray); repaint(); av=unr;} } } if((av<100)&&(uv<100))sobib(); else raamvaba=true; return true; } void sobib(){ boolean korras=true; boolean juures=false; if(avnr==2)if((sb2[av]==uv)&&(uvnr==1)){juures=true;sb2[av]=80; sb1[uv]=true; e2[av].joonista(piltg, Color.green); as[uv].joonista(piltg, Color.green); for(int i=0; i<3; i++)if(sb2[i]<80)korras=false; if(korras){ja2(piltg); sees2=1; avnr=0; ules();} } else{ e2[av].joonista(piltg, Color.black); as[uv].joonista(piltg, Color.black);} if(avnr==3){if((sb3[av]==uv)&&(uvnr==1)){juures=true; sb3[av]=80; sb1[uv]=true; e3[av].joonista(piltg, Color.green); as[uv].joonista(piltg, Color.green); } else{e3[av].joonista(piltg, Color.black); as[uv].joonista(piltg,Color.black); } if((uv==1)&&(uvnr==4)&&(av==2)){juures=true; kolmlaud=true;e3[2].joonista(piltg, kaesvarv); asi4a.joonista(piltg, kaesvarv); } for(int i=0; i<4; i++){if(sb3[i]<80)korras=false;} if((sees4>0)&&(kolmlaud==false))korras=false; if(korras){ja3(piltg); sees3=1; avnr=0; ules();} } if(avnr==4){if((sb4[av]==uv)&&(uvnr==1)){juures=true; sb4[av]=80; sb1[uv]=true; e4[av].joonista(piltg, Color.green); as[uv].joonista(piltg, Color.green);} else{e4[av].joonista(piltg, Color.black); as[uv].joonista(piltg, Color.black);} if((uv==2)&&(uvnr==3)&&(av==9)){juures=true; nelilaud=true;e4[9].joonista(piltg, kaesvarv); asi3b.joonista(piltg, kaesvarv); } for(int i=0; i<10; i++){if(sb4[i]<80)korras=false;} if((sees3>0)&&(nelilaud==false))korras=false; if(korras){ja4(piltg); sees4=1; ules();} } if(!juures){raamvaba=false; rm.setText("Not compatible"); if(uenr==1)as[uv].joonista(piltg, Color.black); if(uenr==2)as2a.joonista(piltg, Color.black); if(uenr==3){if(uv==1)asi3a.joonista(piltg, Color.black); if(uv==2)asi3b.joonista(piltg, Color.black); } if(uenr==4){if(uv==1)asi4a.joonista(piltg, Color.black); if(uv==2)asi4b.joonista(piltg, Color.black); } } if(korras&juures){raamvaba=false; rm.setText(" *** OK ***");} else if(juures){raamvaba=false; rm.setText(" OK. Continue!");} if(sees2>0&sees3>0&sees4>0){raamvaba=false; rm.setText("Work finished");} av=100; uv=100; } 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==n2)je2(piltg); if(e.target.equals(n3))je3(piltg); if(e.target.equals(n4))je4(piltg); n2.hide(); n3.hide(); n4.hide(); repaint(); return true; } public void ules(){ int i; piltg.setColor(Color.black); if(sees2==0)n2.show(); else as2a.joonista(piltg); if(sees3==0)n3.show(); else {asi3a.joonista(piltg); asi3b.joonista(piltg);} if(sees4==0)n4.show(); else {asi4a.joonista(piltg); asi4b.joonista(piltg);} for (i=0; i<12; i++)as[i].joonista(piltg); for (i=0; i<12; i++)sb1[i]=false; } } class raam extends Frame{ ca ap; Label lb=new Label(""); Button nupp=new Button("OK"); Panel p=new Panel(); public raam(ca apl){ ap=apl; setTitle("Message"); this.setBackground(Color.white); p.setLayout(new BorderLayout()); p.add("Center", lb); p.add("East", nupp); add("North", p); resize(200, 50); } public void setText(String s){ lb.setText(s); pack(); resize(200, 80); this.show(); nupp.requestFocus(); } /*public boolean lostFocus(Event e, Object arg){nupp.requestFocus(); return true;}*/ public boolean action(Event e, Object arg){ if(e.target==nupp){this.hide();ap.raamvaba=true; } return true; } }