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

/* Objekt typu TilesList uchovává 'uzavřený' seznam dlaždic,
   které již byly navštíveny algoritmem A*. 
   Instance třídy TileNodes jsou v seznamu nesetříděné.

   Algoritmus hledání cesty A* využívají objekty typu AlienAStarSprite.
*/

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


public class TilesList
{
  protected ArrayList nodes;   // seznam objektů typu TileNode


  public TilesList(TileNode node)
  { nodes = new ArrayList();
    nodes.add(node);
  }

  public TilesList()
  {  nodes = new ArrayList();  }

  public void add(TileNode node)
  {  nodes.add(node);  }


  public TileNode findNode(Point p)
  // lineárně vyhledá dalždici na pozici p
  {
    TileNode entry;
    for(int i=0; i < nodes.size(); i++) {
      entry = (TileNode) nodes.get(i);
      if ((entry.getPoint()).equals(p))
        return entry;
    }
    return null;
  }  // konec metody: findNode()


  public boolean delete(Point p)
  /* Pokusí se smazat dlaždici na pozici p ze seznamu.
     Není-li p v seznamu, tak neudělá nic.
  */
  {
    Point entry;
    for(int i=0; i < nodes.size(); i++) {
      entry = ((TileNode) nodes.get(i)).getPoint();
      if (entry.equals(p)) {
        nodes.remove(i);
        return true;
      }
    }
    return false;
  }  // konec metody: delete()


  public int size()
  {  return nodes.size();  }

}  // konec třídy: TilesList
