import java.util.*;

public class RepairDroid
{
    public static final String INITIAL_INPUT = Integer.toString(DroidMovement.NORTH);

    public RepairDroid (Vector<String> instructions, boolean debug)
    {
        _debug = debug;
        _theComputer = new Intcode(instructions, INITIAL_INPUT, _debug);
        _location = new Coordinate(0, 0);  // starting location
        _theMap = new Map();

        _theMap.addContent(_location, TileId.TRAVERSE);
    }

    public final int moveToOxygenStation ()
    {
        int numberOfSteps = 0;

        // create a map first!

        return numberOfSteps;
    }

    public void printGrid ()
    {
        
    }

    private void recursiveSearch (Coordinate from)
    {
        boolean found = false;

        while (!found && !_theComputer.hasHalted())
        {
            _theComputer.setInput(DroidMovement.NORTH);

            _theComputer.singleStepExecution();

            if (_theComputer.hasOutput())
            {
                String response = _theComputer.getOutput();
            }
            else
                System.out.println("Error - no output after move instruction!");
        }
    }

    private boolean _debug;
    private Intcode _theComputer;
    private Coordinate _location;
    private Map _theMap;
}
@@ -670,20 +670,23 @@
 private 
-void
+boolean
  recursi
@@ -730,93 +730,127 @@
     
-boolean found = false;%0A%0A        while (!found && !_theComputer.hasHalted())%0A        %7B
+while (!_theComputer.hasHalted())%0A        %7B%0A            Coordinate coord = new Coordinate(from.getX(), from.getY()+1);%0A
 %0A   
@@ -880,16 +880,27 @@
 etInput(
+new String(
 DroidMov
@@ -907,24 +907,25 @@
 ement.NORTH)
+)
 ;%0A%0A         
@@ -1036,22 +1036,19 @@
         
-Str
 in
-g
+t
  respons
@@ -1051,16 +1051,33 @@
 ponse = 
+Integer.parseInt(
 _theComp
@@ -1092,17 +1092,939 @@
 Output()
-;
+);%0A%0A                switch (response)%0A                %7B%0A                    case DroidStatus.ARRIVED:%0A                    %7B%0A                        _theMap.addContent(coord, TileId.OXYGEN_STATION);%0A                        %0A                        return true;%0A                    %7D%0A                    break;%0A                    case DroidStatus.COLLISION:%0A                    %7B%0A                        _theMap.addContent(from, TileId.WALL);  // didn't move as we hit a wall%0A%0A                        return false;%0A                    %7D%0A                    break;%0A                    case DroidStatus.MOVED:%0A                    %7B%0A                        _theMap.addContent(coord, TileId.TRAVERSE);%0A%0A                        return recursiveSearch(coord);%0A                    %7D%0A                    break;%0A                    default:%0A                        System.out.println(%22Unknown response: %22+response);%0A                %7D
 %0A       
@@ -2133,24 +2133,47 @@
 );%0A        %7D
+%0A%0A        return false;
 %0A    %7D%0A%0A    

Update RepairDroid.java