import java.applet.Applet;
import java.applet.*;
import java.applet.AppletContext;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import java.net.URL;
import java.net.*;

public class pupupeli extends Applet implements Runnable
{
  TextField kentta;
  
  Label ohje;
  private Thread Saie = null;
//  private Thread Saie2 = null;
   // Thread Saie;
    pupu Pupu;
    
   public final int VASEN = -2;
   public final int OIKEA = 2;
   public final int YLOS = 1;
   public final int ALAS = -1;   
 
 private int pisteet = 0;
 private int lopputulos = 0; 
 


 
 private String teksti="";
 private String teksti2=""; 

 private boolean pysaytetty = false;  
 MediaTracker tracker;
 Image ra1;
 Image ra2;
 Image ra3;
 Image ra4;  
 Image ruoh2; 
 Image kok2;
 Image viher;
 Image pKuva;
 Graphics p;
 Image pKuva2;
 Graphics p2;
    public void init()
    { 
       ra1 =getImage(getCodeBase(),"ra1.gif");
        ra2 =getImage(getCodeBase(),"ra2.gif");
         ra3 =getImage(getCodeBase(),"ra3.gif");
          ra4 =getImage(getCodeBase(),"ra4.gif");
           ruoh2 =getImage(getCodeBase(),"ruoh2.gif");
            kok2 =getImage(getCodeBase(),"kok2.gif");
             viher =getImage(getCodeBase(),"viher.gif");
       tracker = new MediaTracker(this);
       tracker.addImage(ra1,1);
        tracker.addImage(ra2,2);
         tracker.addImage(ra3,3);
          tracker.addImage(ra4,4);
           tracker.addImage(ruoh2,5);
             tracker.addImage(kok2,6);
              tracker.addImage(viher,0);
             
        while (tracker.statusAll(false)==0)
        { showStatus("OOTAPPA, latailen kuvia sun muuta peliin...");           
              try {tracker.waitForAll();}
              
       catch (InterruptedException k) {} 
        }


             
       pKuva = createImage(500,400);
       p = pKuva.getGraphics();
       p.drawImage(viher,0,0,this);      
       
       pKuva2 = createImage(500,400);
       p2 = pKuva2.getGraphics(); 
       p2.drawRect(0,30,499,330);
       p2.fillRect(100,150,250,5);
       p2.fillRect(350,150,5,100); 
       p2.fillRect(100,300,250,5);   
             
       kentta=new TextField(40);
       ohje = new Label("Nimi");
       Pupu = new pupu(100,10,OIKEA);
       
       addKeyListener(new PupuKuuntelee());
       addMouseListener(new HiiriKuuntelee());
       kentta.addActionListener(new TekstiKuuntelee());
       add(ohje);
       add(kentta);
       kentta.setVisible(true);
     
     
      
    }
     
 
  

class PupuKuuntelee extends KeyAdapter 

    {
        public void keyPressed(KeyEvent ke)
        {
                switch(ke.getKeyCode())
                {
                        case KeyEvent.VK_LEFT:
                        if (Pupu.annaSuunta() != Pupu.OIKEA)
                           Pupu.kaanny(Pupu.VASEN);
                           break;
                           
                        case KeyEvent.VK_RIGHT:
                        if (Pupu.annaSuunta() != Pupu.VASEN)
                           Pupu.kaanny(Pupu.OIKEA);
                           break;
                            
                        case KeyEvent.VK_UP:
                        if (Pupu.annaSuunta() != Pupu.ALAS)
                           Pupu.kaanny(Pupu.YLOS);
                           break;
                           
                       case KeyEvent.VK_DOWN:
                       if (Pupu.annaSuunta() != Pupu.YLOS)
                          Pupu.kaanny(Pupu.ALAS);
                          break;
                }        
        }        
             
    }



class HiiriKuuntelee extends MouseAdapter
{
        
       
        public void mousePressed(MouseEvent me)
        {
                int x = me.getX();
                int y = me.getY();
                
                if (pysaytetty)
                {
                       
                        if ((x >= 200)&&(x <= 300)&&(y >= 300)&&(y <=320))
                        {
                                kentta.setVisible(true);
                                Pupu = new pupu(100,200,OIKEA);
                                  if(pisteet<2500)
                                  pisteet = 0;
                                  else
                                  pisteet =2500;
                                pysaytetty = false;
                                requestFocus();
                                 
                        }
                        if ((x >= 100)&&(x <= 200)&&(y >= 200)&&(y <= 220))
                        { 
                               
                                
                              /*
                                       try{
                                    AppletContext c = getAppletContext();
                                    URL osoite = new URL("http://www.saunalahti.fi/jqittin2/jq.php3?tulos="+pisteet);
                                     c.showDocument(osoite);
                  
                                  }
                              catch (MalformedURLException e) {}
                                    
                                    URLConnection c=url.openConnection();
                                 
                                   if (t.exists() && t.canRead())
                                    syotto = new FileOutputStream("nimet.txt",true);
                                    else
                                    syotto = new FileOutputStream("nimet.txt");
                                    PrintWriter out=new PrintWriter(syotto);
                                    out.println(teksti);
                                    
                                   
                                    out.close();
                                  
                                    d.showDocument(url);
                                  
                                  }
                              catch (MalformedURLException e) {showStatus("HUI");}
                              catch (Exception e) {showStatus(e.getMessage());e.printStackTrace();}
                          */
                        }        
                 
                 }
         }
 }
    
    
 class TekstiKuuntelee implements ActionListener
{     
       
        public void actionPerformed(ActionEvent ae)
        {
             
     
           
                  
                   if (ae.getSource()==kentta)
                   teksti=kentta.getText();
                   teksti= pisteet+"____"+teksti;
                 
                  try{
                          
                  AppletContext sivu = getAppletContext();       
                  URL url = new URL ("http://www.sputnikki.net/www/cgi-bin/skripti.sh?"+teksti);
                  sivu.showDocument(url);
                  }
                  catch (MalformedURLException e) {showStatus("HUI");} 
                  kentta.setVisible(false);
               
        }       
         
}         
    
      public void start()
    {
     
      Saie = new Thread(this);
    //  Saie2 = new Thread(this);
      
      Saie.start();
    //  Saie2.start();
      
    }
    
    public void run()
    {
       
            
      Thread tamaSaie = Thread.currentThread();
      while (Saie == tamaSaie)
      {
      	if(pisteet < 2500)
      	{
      	
          if  ((!Pupu.onkoKuollut())&&(!Pupu.osui())&&(!Pupu.osui2())&&(!Pupu.osui3()))
          {
              
           Pupu.liiku();
           Pupu.Kivi.lenna();
       
           pisteet += Pupu.syo();
           if(pisteet >= 1000) Pupu.Kivi2.lenna();
           if(pisteet >= 1500) Pupu.Kivi3.lenna(); 
       
           repaint();  
           }
        
         else
           {
         
           pysaytetty = true;
           repaint();
        
           }

        }
         
         else if (pisteet>= 2500)
        {
        	
        if  ((!Pupu.onkoKuollut())&&(!Pupu.osui())&&(!Pupu.osui2())&&(!Pupu.osui3())&&(!Pupu.osuiSeinaan())&&(!Pupu.osuiSeinaan2())&&(!Pupu.osuiSeinaan3()))
           {
              
            Pupu.liiku();
            Pupu.Kivi.lenna();
       
            pisteet += Pupu.syo();
            Pupu.Kivi2.lenna();
            Pupu.Kivi3.lenna(); 
       
            repaint();  
            }
        
          else
            {
         
           pysaytetty = true;
           repaint();
           
        
            }
        
        }
       
           
         try
         {
           tamaSaie.sleep(180);
         }
         catch (InterruptedException e){}
      }
    }
    
       public void update(Graphics g)
    {
    	
    	
       this.paint(g);
          
    }	
    
    
    
    public void paint(Graphics g)
    {
           
            
            if(!pysaytetty)
            {
             
            g.drawImage(viher,0,0,this);
             	
            g. setColor(Color.red);        
            g.drawRect(0,30,499,330);
            if(pisteet>=2500){
            g.fillRect(Pupu.Seina.annaX(),Pupu.Seina.annaY(),Pupu.Seina.annaX1(),Pupu.Seina.annaY1());      
            g.fillRect(Pupu.Seina2.annaX(),Pupu.Seina2.annaY(),Pupu.Seina2.annaX1(),Pupu.Seina2.annaY1());   
            g.fillRect(Pupu.Seina3.annaX(),Pupu.Seina3.annaY(),Pupu.Seina3.annaX1(),Pupu.Seina3.annaY1());   
           }
            Pupu.piirraPorkkana(g);
            
          
            
            g.drawString((""+pisteet),300,320);
            
          
              g.drawImage(ruoh2,Pupu.Kivi.annaX(),Pupu.Kivi.annaY(),this); 
               g.drawImage(ruoh2,Pupu.Kivi2.annaX(),Pupu.Kivi2.annaY(),this); 
               g.drawImage(kok2,Pupu.Kivi3.annaX(),Pupu.Kivi3.annaY(),this); 
               
               Pupu.piirraTera1(g);
               Pupu.piirraTera2(g);
              
               
               if(Pupu.annaSuunta()==OIKEA) 
                g.drawImage(ra1,Pupu.annaX(),Pupu.annaY(),this);
               else if(Pupu.annaSuunta()==ALAS)
                g.drawImage(ra2,Pupu.annaX(),Pupu.annaY(),this);
               else if(Pupu.annaSuunta()==VASEN)  
                g.drawImage(ra3,Pupu.annaX(),Pupu.annaY(),this);
               else if(Pupu.annaSuunta()==YLOS) 
                g.drawImage(ra4,Pupu.annaX(),Pupu.annaY(),this);
            }
            else
            {
             //g.drawImage(viher,0,0,this);
             g.setColor(Color.white);  
             g.fillRect(0,0,500,400);   
             Pupu.piirraValikuva(g);
             g.drawString(("Pisteitä tuli  "+pisteet),310,320);
        
           
            }
           
    }
    
    
}
