import java.awt.*;
import java.util.*;

public class GRID5{
    
  Vector truck_vector= new Vector();
  CELL3 car = new CELL3(50,200,Color.blue);
  int col=2;
  Random r = new Random();
  int score, next;
  boolean gameOn = true;  

  GRID5(){
    spawn();
  }

  public void move_car(int m){
    if(col>0 && m==-1){
        col--;
        car.moveX(m);
    }
    else if(col<5 && m==1){
        col++;
        car.moveX(m);
    }
  }

  public void move_trucks(){
//linked list alterations
    int len = truck_vector.size();
    for(int i = 0; i<len; i++){
      TRUCK_CLASS holder = (TRUCK_CLASS)truck_vector.get(i);
      holder.moveTruck();
    }
    TRUCK_CLASS holder = (TRUCK_CLASS)truck_vector.lastElement();
    if(holder.getY()>80){
      score++;
      spawn();
    }
    if(crash()) endGame();
  }

  public boolean keepPlaying(){
    return gameOn;
  }

  public void endGame(){
    gameOn=false;
  }

  public boolean crash(){
    int len = truck_vector.size();
    for(int i = 0; i<len; i++){
      TRUCK_CLASS holder = (TRUCK_CLASS) truck_vector.get(i);
      if(holder.check_collision(car.x,car.y)){
        System.out.println("CRASH");
        return true;
      }
    }
    return false;
  }

  public void spawn(){
    if(truck_vector.size() > 3){
      truck_vector.remove(0);
      truck_vector.trimToSize();
    }
    truck_vector.addElement(new TRUCK_CLASS());
  }

  public void draw(Graphics g){
    car.draw(g);
    int len = truck_vector.size();
    for(int i = 0; i<len; i++){
      TRUCK_CLASS holder = (TRUCK_CLASS) truck_vector.get(i);
      holder.draw(g);
    }
    g.setColor(Color.black);
    g.drawRect(30,10,60,210);
  }
}

