import java.applet.Applet;
import java.awt.event.*;
import java.awt.*;

public class Auto2 extends Applet implements KeyListener, Runnable{

  double x=100, y=100;
  double nurk=0, pikkus=100, samm=10;
  boolean algus=true;

  public Auto2(){
    addKeyListener(this);
  }

  public void paint(Graphics g){
	double x2=x+pikkus*Math.cos(nurk); //tuleb vlja arvutada eraldi kriips ja ring et nad ei laguneks laiali ega
	double y2=y+pikkus*Math.sin(nurk); //lheks proportsioonist vlja
    g.drawLine((int)x, (int)y, (int)x2, (int)y2);
	g.drawOval((int)x-5, (int)y-5, 10, 10);
  }

  public void run(){
	while(true){
		x=x+Math.cos(nurk)*samm; // mratakse ra liikumine koordinaatidel vastavalt sammu pikkusele
		y=y+Math.sin(nurk)*samm;
		repaint();
		try{Thread.sleep(200);} catch(Exception ex){} //mrab aja kaua auto ootab (200 millisekundit)
	}
  }

  public void keyPressed(KeyEvent e){
	if(algus){
		new Thread(this).start();
		algus=false;
	}
    int kood=e.getKeyCode();
    if(kood==KeyEvent.VK_LEFT)nurk=nurk-0.1; //liikumine vasakule
    if(kood==KeyEvent.VK_RIGHT)nurk=nurk+0.1;//liikumine paremale
    if(kood==KeyEvent.VK_UP){
		samm=samm+1; //edasi liikumine lisades kiirust
	}
	if(kood==KeyEvent.VK_DOWN){
		samm=samm-1;//tagurpidi liikumine vhendades sammu
	}
  }

  public void keyReleased(KeyEvent e){}

  public void keyTyped(KeyEvent e){}
  

  public static void main(String argumendid[]){
    Frame f=new Frame("Autosit");
    f.add(new Auto2());
    f.setSize(700, 700);
    f.setVisible(true);  
  }

}

