/**
*	State in a state-space search
*	abstract class
*   must implement goalP, get_Successors, same_State, toString
*   variable cost version - has localCost variable
*/

import java.util.*;

public abstract class Search_State {

  // change from search2 - need to give local cost
  protected int localCost;
  
  /**
  * accessor for local cost
  */
  
  public int getlocalCost(){
    return localCost;
  }
    
  // must implement goalP, get_Successors, same_State, toString
    
  // goalP takes a Search_Node & returns a boolean if it's a goal
   
  abstract boolean goalP(Search searcher);
  abstract ArrayList get_Successors(Search searcher);
  abstract boolean same_State(Search_State n2);
      
}
