public void getPath() {
			// Find our path
			AStarContainer container = PathFinding.findPathDebug(startX, startY, endX, endY, tiles,
					HEURISTIC_WANTED, TIE_BREAKING_TYPE, EXPANSION_TYPE);

			closedTiles = new HashMap<Location, SearchNode>();
			openTiles = new HashMap<Location, SearchNode>();
			allTiles = new HashMap<Location, SearchNode>();

			for (SearchNode tile : container.closedTiles) {
				closedTiles.put(tile.getAsLocation(), tile);
			}

			for (SearchNode tile : container.openTiles) {
				openTiles.put(tile.getAsLocation(), tile);
			}

			allTiles.putAll(closedTiles);
			allTiles.putAll(openTiles);

			// Populate a map so we can easily show statistics
			bestPath = new ArrayList<Location>();

			// Get the best path and add it to our best path map
			SearchNode parent = container.endTile;
			while ((parent = parent.getParent()) != null) {
				bestPath.add(parent.getAsLocation());
			}

			// Since we traverse from the end to the start when working out the
			// best path, reverse it, so it's more 'logical' (start to finish)
			Collections.reverse(bestPath);

			// Output info
			foundPathInString = Helpers.concat("\nA* Facts\n--------------",
					"\nTotal open :: ", container.openTiles.size(),
					"\nTotal Closed :: ", container.closedTiles.size(),
					"\nTotal best path :: ", bestPath.size(),
					"\nTotal :: ", container.openTiles.size() + container.closedTiles.size(),
					"\nMethod Used :: ", HEURISTIC_WANTED,
					"\n(PRESS 1-3 TO CHANGE)");
		}