
/**
 * Solution to Problem 2-7 in the Bergin book.  Pick up spilled
 * groceries.
 * 
 * @author Russell C. Bjork 
 * @version January 6, 2006
 */
import kareltherobot.*;

public class Problem2_7 implements Runnable
{
	/** Main method - set up the world and start the program
	 */
    public static void main(String [] args)
    { 
      	World.readWorld("Problem2_7.world");
      	World.setVisible(true);
      	World.setupThread(new Problem2_7());
      	World.setTrace(false);
      	World.showSpeedControl(true);
    }
    
    /** Method that describes the task to be performed.
     */  
    public void run()
    {
         // Create a new robot at 5rd St and 7th Ave, facing East, with no beepers
 		
        Robot karel = new Robot(5, 7, Directions.East, 0);        

		// Go to first dropped beeper - pick it up

        karel.turnLeft(); karel.turnLeft();
        karel.move();
        karel.move();
        karel.pickBeeper();

		// Go to second dropped beeper - pick it up

        karel.move();
        karel.turnLeft(); karel.turnLeft(); karel.turnLeft();
        karel.move();
        karel.pickBeeper();
        
        // Go to third dropped beeper - pick it up

        karel.move();
        karel.turnLeft();
        karel.move();
        karel.pickBeeper();
        
		// Go to last dropped beeper - pick it up
        
        karel.turnLeft(); karel.turnLeft(); karel.turnLeft();
        karel.move();
        karel.pickBeeper();
        
        // Go back home and turn off
        
        karel.turnLeft(); karel.turnLeft();
        karel.move();
        karel.move();
        karel.move();
        karel.turnLeft();
        karel.move();
        karel.move();
        karel.move();
        karel.move();
        karel.turnOff();
	}
}