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; 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(); Panel np=new Panel(); boolean sb1[]=new boolean[12]; int anr=0, avnr=2, uvnr=100, uv=100, av=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, 4)); np.add(n2); np.add(n3); np.add(n4); //np.hide(); this.setLayout(new BorderLayout()); add("South", np); // je2(piltg); 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)){unr=2; uvnr=3;}} if(sees4>0){if(asi4a.sees(x, y)){unr=1; uvnr=4;} if(asi4b.sees(x, y)){unr=2; uvnr=4;}} if(unr<100){ if(uv<100)as[uv].joonista(piltg, Color.black); if(uvnr==1)as[unr].joonista(piltg, Color.gray); if(uvnr==2)as2a.joonista(piltg, Color.gray); uv=unr; repaint(); }} else{ System.out.println("all"); if(avnr==2)for(i=0; i<3; i++)if(e2[i].sees(x, y))unr=i; if(avnr==3)for(i=0; i<4; i++)if(e3[i].sees(x, y))unr=i; if(avnr==4)for(i=0; i<10; i++)if(e3[i].sees(x, y))unr=i; 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); } System.out.println("unr="+unr+" avnr="+avnr); 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); System.out.println("avnr="+avnr+" unr="+unr+" uv="+uv+" sb2[unr]"+sb2[unr]); repaint(); av=unr;} } if((av<100)&&(uv<100))sobib(); 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.white); as[uv].joonista(piltg, Color.white); for(int i=0; i<3; i++)if(sb2[i]<80)korras=false; if(korras){ja2(piltg); sees2=1;} } 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.white); as[uv].joonista(piltg, Color.white); } 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;} } if(avnr==4){if((sb4[av]==uv)&&(uvnr==1)){juures=true; sb4[av]=80; sb1[uv]=true; e4[av].joonista(piltg, Color.white); as[uv].joonista(piltg, Color.white);} 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[9]<80)korras=false;} if((sees3>0)&&(nelilaud==false))korras=false; if(korras){ja4(piltg); sees4=1;} } if(!juures){rm.init(); rm.setText("Not compatible"); rm.show();} 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); repaint(); return true; } } class raam extends Frame{ Label lb=new Label(""); Button nupp=new Button("OK"); Panel p=new Panel(); public void init(){ setTitle("Message"); this.setBackground(Color.white); // p.setLayout(new GridLayout(1, 2)); p.add(lb); p.add(nupp); add(p); resize(300, 250); pack(); this.show(); } public void setText(String s){ lb.setText(s); } public boolean action(Event e, Object arg){ if(e.target==nupp)this.hide(); return true; } }