import java.awt.*; import java.applet.Applet; import java.awt.event.*; import java.util.LinkedList; public class pyydja extends Applet implements Runnable, MouseListener { int lost=0,caught=0; Image good=Toolkit.getDefaultToolkit().getImage("yy.png"); Image bad=Toolkit.getDefaultToolkit().getImage("bh.png"); Label l1=new Label("PÜÜTUD"); Label l2=new Label("KAOTATUD"); TextField tf1=new TextField("0",3); TextField tf2=new TextField("0",3); LinkedList objects=new LinkedList(); //siia lähevad kukkuvad objektid //konstruktor public pyydja() { add(l1); add(tf1); add(tf2); add(l2); addMouseListener(this); new Thread(this).start(); } public void run() { while (caught>=lost) //kuni kaotustingimuseni { try{Thread.sleep(50);}catch(Exception exs){} if (objects.size()<15){objects.add(new objekt());} //korraga 15 objekti repaint(); } suck(); //kaotustingimuse täitudes } public void mousePressed(MouseEvent e) //hiirekliki peale { for(int i=0; iox-10 && hy-10oy-10) //kas saadi üldse millelegi pihta { if (obj.status()==1) // kui saadi "heale" objektile pihta { objects.remove(i); ++caught; tf1.setText(""+caught); }else{ //kui saadi "halvale" objektile pihta objects.remove(i); --caught; ++lost; tf1.setText(""+caught); tf2.setText(""+lost); } } } } public void mouseReleased(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void update(Graphics g){paint(g);} //et graafika ei vilguks public void paint(Graphics g) { Image pilt=createImage(getWidth(), getHeight()); //kogu läbu mällu pildi peale Graphics piltg=pilt.getGraphics(); for(int i=0; igetHeight()) //kui objekt üle alumise ääre { objects.remove(i); //viska objekt välja if (o.status()==1) //kui oli "hea" objekt { lost=lost+1+(int)(caught/20); //iga 20 püütu kohta kaotamisel +1 karistus tf2.setText(""+lost); } }else{ //kui objekt raami sees if (o.status()==1) //kui "hea" objekt { piltg.drawImage(good,o.X()-10,o.Y()-10,20,20,null); }else{ //kui "paha" objekt piltg.drawImage(bad,o.X()-10,o.Y()-10,20,20,null); } } } g.drawImage(pilt,0,0,this); //pilt mälust ekraanile } public static void suck() //kaotusest teataja { Frame s=new Frame("You Suck!"); Label l=new Label("XXXXX------->MÄNG LÄBI !!!<-------XXXXX"); s.add(l); s.addWindowListener(new Raamikuular()); s.setSize(230,100); s.setVisible(true); } public static void main(String arg[]) { Frame f=new Frame("Pyydja"); f.add(new pyydja()); f.setSize(600,400); f.setVisible(true); f.addWindowListener(new Raamikuular()); } class objekt { int ox,oy,stat; boolean top; //näitab objektide katuvust long algaeg=System.currentTimeMillis(); //initsialiseeritakse objekti algusaeg public objekt() { top=true; while (top==true) //kuni leitakse positsioon, kus uus objekt vanaga ei kattu { top=false; ox=(int)((Math.random()*(getWidth()-20))+10); for(int i=0; iox-10)){top=true;} } } oy=40; //algkõrgus stat=(int)(Math.random()*2); //kas hea või paha objekt } int X() //ütleb objekti x koordinaadi { return ox; } int Y() //ütleb objekti y koordinaadi { double dt=(System.currentTimeMillis()-algaeg)/1000.0; //objekti vanus oy=(int)(oy+(0.98*dt*dt)/4); //y koordinaadi arvutamine return oy; } int status() { return stat; //ytleb kas hea või paha objekt } } }