import java.awt.Color;

public class Food extends MobileSimObject {
    // OVERVIEW: A RandomWalker is a drunk simulator object that performace a random walk,
    //    moving one square in a random direction each step.

    private boolean inTurn; // Currently in the middle of a turn (used for coloring)

    public Food () {
	inTurn = false;
    }

    public String getName() {
      return "Food";
    }

    public Color getColor()
    {
	if (inTurn) {
	    return Color.white;
	} else {
	    return Color.cyan;
	}
    } //@nowarn NonNullResult // ESC/Java doesn't know Color constants are not null

    public void executeTurn() throws RuntimeException
       // Note: requires isInitialized is inherited from SimObject
       // EFFECTS: Picks a random direction and tries to move that way.
       //          If the move is successful, return true. If the move fails
       //          because the spot being attempted to move into is already
       //          occupied then return false.

    {
	inTurn = true;
	Direction dir = Direction.randomDirection ();
	int newrow = getRow () + dir.northerlyDirection ();
	int newcol = getColumn () + dir.easterlyDirection ();
	synchronized (getGrid()) {
		if (getGrid ().validLocation (newrow, newcol)) {
	    	if (getGrid().isSquareEmpty (newrow, newcol)) {
		        setLocation (newrow, newcol);
			}
		}
		inTurn = false;
    }
	}
}