@Override
	public Move makeMove()
	{
		String input = null;
		Boolean inputError = false;
		
		do
		{
			try
			{
				if (inputError)
				{
					_writer.write("Invalid input. Try again.");
					_writer.newLine();
				}
				
				input = _reader.readLine();
				
				if (input != null && input.charAt(0) == 'q')
					return new Move();
				
				inputError = (
						input == null ||
						input.length() < 2 ||
						!Columns.containsKey(input.charAt(0)) ||
						!Rows.containsKey(input.charAt(1))
					);
			}
			catch (IOException e)
			{
				inputError = true;
			}
		} while(inputError);

		return new Move(Columns.get(input.charAt(0)), Rows.get(input.charAt(1)));
	}