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

public class TRAP{ 
  Random r;
  int width, height;
  int x[] = {0,0,0,0};
  int y[] = {0,0,0,0};
  int xinc[] = {0,0,0,0};
  int yinc[] = {0,0,0,0};
  boolean renew;
  Color color;
    
  TRAP(int w, int h, Color c){ 
    width=w;
    height=h;
    color=c;
    r = new Random();
    renew=false;
    x[0] = Math.abs(r.nextInt()%300)+10;
    x[1] = Math.abs(r.nextInt()%300)+460;
    x[2] = Math.abs(r.nextInt()%300)+10;
    x[3] = Math.abs(r.nextInt()%300)+460;
    y[0] = Math.abs(r.nextInt()%150)+10;
    y[1] = Math.abs(r.nextInt()%150)+10;        
    y[2] = Math.abs(r.nextInt()%150)+210;
    y[3] = Math.abs(r.nextInt()%150)+210;
    for(int i=0; i<4; i++){
      xinc[i]=getN(12);
      yinc[i]=getN(12);
    }
  } 
  
  public int getN(int n){
    int num = r.nextInt(n);
    int sign= r.nextInt(100);
    if(sign%2==1) return num*(-1);
    else return num;
  }
  
  public void change(){
    for(int i=0; i<4; i++){
       x[i]+=xinc[i];
       y[i]+=yinc[i];
       if(x[i]>width || x[i]<0) xinc[i]*=-1;
       if(y[i]>height || y[i]<0) yinc[i]*=-1;
    }
    if(x[3]-x[2]<20){
      xinc[2]*=-1;
      xinc[3]*=-1;
    }
    else if(x[3]-x[0]<20){
      xinc[3]*=-1;
      xinc[0]*=-1;
    }
    if(x[1]-x[0]<20){
      xinc[0]*=-1;
      xinc[1]*=-1;
    }
    else if(x[1]-x[2]<20){
      xinc[1]*=-1;
      xinc[2]*=-1;
    }
    if(y[3]-y[1]<20){
      yinc[1]*=-1;
      yinc[3]*=-1;
    }
    else if(y[3]-y[0]<20){
      yinc[3]*=-1;
      yinc[0]*=-1;
    }
    if(y[2]-y[0]<20){
      yinc[0]*=-1;
      yinc[2]*=-1;
    }
    else if(y[2]-y[1]<20){
      yinc[2]*=-1;
      yinc[1]*=-1;
    }
  } 
  
  public void draw(Graphics g){ 
    g.setColor(color); 
    g.drawLine(x[0],y[0],x[1],y[1]); 
    g.drawLine(x[0], y[0], x[2], y[2]);
    g.drawLine(x[3],y[3],x[1],y[1]); 
    g.drawLine(x[3], y[3], x[2], y[2]);
  } 
}
 