
/**
 * A very simple maze escaper robot.  The robot moves forward
 * whenever possible - else turns left and then moves forward.
 * The robot is guaranteed to be able to escape in exactly 20 moves.
 * 
 * @author Russell C. Bjork 
 * @version January 9, 2006
 */
import kareltherobot.*;

public class SimpleEscaperRobot extends Robot
{
    /** Constructor
     *
     *  @param street the starting street for this robot
     *  @param avenue the starting avenue for this robot
     *  @param direction the direction this robot is initially facing
     *  @param beepers the number of beepers this robot has initially
     */
    public SimpleEscaperRobot(int street, int avenue, Direction direction, int beepers)
    {
        super(street, avenue, direction, beepers);
    }

    /** Escape from the maze
     */
    public void escape()
    {
        advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
		advanceOneBlock();
    }

    /** Advance one block - turning left if necessary before doing so
     */
    public void advanceOneBlock()
    { 
        if (! frontIsClear())
            turnLeft();
        move();
    }
} 