public class State {
public static final String MOVE_LEFT = "MOVE LEFT";
public static final String MOVE_RIGHT = "MOVE RIGHT";
public static final String SUCK = "SUCK";
/**
* 現状対から移行可能な全3次状態をセットするメソッド
* @param left Vacuumが左に移動した場合の次状態
* @param right Vacuumが右に移動した場合の次状態
* @param suck Vacuumが現在の部屋で吸取りを行った場合の次状態
*/
public void setNextState(State left, State right, State suck) {
//オペレータをキーとし、次状態インスタンスを値として
//Hashtableへ登録する
nextStates.put(MOVE_LEFT, left);
nextStates.put(MOVE_RIGHT, right);
nextStates.put(SUCK, suck);
}
public void setPreviousOperatorAndPointer(String previousOperator, State pointer) {
this.previousOperator = previousOperator;
this.pointer = pointer;
}
public String getPreviousOperator() {
return previousOperator;
}
public State getPointer() {
return pointer;
}
public Hashtable getNextStates() {
return nextStates;
}
public String toVerboseString() {
return "(State" + id + ") : " +
"The left room has " + (dirtInLeftRoom ? "" : "no ") + "dirt, " +
"the right room has " + (dirtInRightRoom ? "" : "no ") + "dirt " +
"and the vacuum is in the " + (vacuum ? "left " : "right ") + "room.";
}
public String toString() {
return "State" + id;
}
}