@Override
	public String toString() {

		StringBuilder print = new StringBuilder();
		char[] blanks = new char[width()*height()];
		Arrays.fill(blanks, '_');
		print.append(blanks);
		
		
		
		for(Point p : _path) {
			print.setCharAt((p.x() - min_x()) + width()*((p.y() - min_y())), '#');
		}
		print.setCharAt((start().x() - min_x()) + width()*((start().y() - min_y())), 'S');
		print.setCharAt((end().x() - min_x()) + width()*((end().y() - min_y())), 'E');
		
		for (int i = height() - 1; i > 0; i--) {
			print.insert(i*width(), '\n');
		}
		
		return print.toString();
	}