
// Obstacles.java
// Andrew Davison, April 2005, ad@fivedots.coe.psu.ac.th

/* kolekce krabiček, přes které červík neprojde
*/

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



public class Obstacles
{
  private static final int BOX_LENGTH = 12;

  private ArrayList boxes;    // pole objektů typu Rectangle
  private WormChase wcTop;


  public Obstacles(WormChase wc)
  { boxes = new ArrayList();
    wcTop = wc; 
  }

  synchronized public void add(int x, int y)
  { boxes.add( new Rectangle(x,y, BOX_LENGTH, BOX_LENGTH)); 
    wcTop.setBoxNumber( boxes.size() );   // ohlaš nový počet krabiček
  }

  synchronized public boolean hits(Point p, int size)
  // leží bod p uvnitř některé z překážek?
  {
    Rectangle r = new Rectangle(p.x, p.y, size, size);
    Rectangle box;
    for(int i=0; i < boxes.size(); i++) {
      box = (Rectangle) boxes.get(i);
      if (box.intersects(r))
        return true;
    }
    return false;
  }  // konec metody: intersects()


  synchronized public void draw(Graphics g)
  // nakreslí posloupnost modrých krabiček
  {
    Rectangle box;
    g.setColor(Color.blue);
    for(int i=0; i < boxes.size(); i++) {
      box = (Rectangle) boxes.get(i);
      g.fillRect( box.x, box.y, box.width, box.height);
    }
  }  // konec metody: draw()


  synchronized public int getNumObstacles()
  {  return boxes.size();  }

}  // konec třídy: Obstacles
