import java.util.*;
import java.io.*;

public class Droid
{
    public Droid (Vector<String> values, boolean debug)
    {
        _theComputer = new Intcode(values, debug);
        _debug = debug;
    }

    /*
     * Move around automatically. TBD.
     */

    public void traverse ()
    {

    }

    public void stepTraverse ()
    {
        boolean finished = false;

        while (!finished)
        {
            _theComputer.executeUntilInput();

            LinkedList<String> outputs = _theComputer.getOutputs();
            String theOutput = Util.outputToString(outputs);

            System.out.println(theOutput);
            System.out.println(Commands.getCommands());

            String input = "";

	        try
            {
		        InputStreamReader isReader = new InputStreamReader(System.in);
		        BufferedReader bufferedReader = new BufferedReader(isReader);

		        input = bufferedReader.readLine();
	        }
            catch (Throwable ex)
            {
	        }

            int option = 9;
            
            try
            {
                option = Integer.parseInt(input);
            }
            catch (Throwable ex)
            {
                option = 8;  // quit on error
            }

            switch (option)
            {
                case 1:
                {
                    _theComputer.setInput(Commands.NORTH+"\n");
                }
                break;
                case 2:
                {
                    _theComputer.setInput(Commands.SOUTH+"\n");
                }
                break;
                case 3:
                {
                    _theComputer.setInput(Commands.EAST+"\n");
                }
                break;
                case 4:
                {
                    _theComputer.setInput(Commands.WEST+"\n");
                }
                break;
                case 8:
                {
                    finished = true;
                }
                break;
                default:
                {
                    System.out.println("Unrecognised input: "+option);
                }
            }
        }
    }

    private Intcode _theComputer;
    private boolean _debug;
}
@@ -711,299 +711,24 @@
 t = 
-%22%22;%0A%0A%09        try%0A            %7B%0A%09%09        InputStreamReader isReader = new InputStreamReader(System.in);%0A%09%09        BufferedReader bufferedReader = new BufferedReader(isReader);%0A%0A%09%09        input = bufferedReader.readLine();%0A%09        %7D%0A            catch (Throwable ex)%0A            %7B%0A%09        %7D
+Util.getInput();
 %0A%0A  
@@ -1588,32 +1588,613 @@
          break;%0A
+                case 5:%0A                %7B%0A                    System.out.println(%22Which item to drop?%22);%0A%0A                    String item = Util.getInput();%0A%0A                    _theComputer.setInputs(Util.stringToInput(Commands.DROP, item.trim()));%0A%0A%09%09            System.out.println(%22Dropped: %22 + item);%0A                %7D%0A                break;%0A                case 6:%0A                %7B%0A%0A                %7D%0A                break;%0A                case 7:%0A                %7B%0A                    _theComputer.setInput(Commands.INVENTORY+%22%5Cn%22);%0A                %7D%0A                break;%0A
                 

Update Droid.java