public HashSet<Tile> getTileRadius(Tile center, int radius) 
	{
		HashSet<Tile> innerTiles = new HashSet<Tile>(); //"Visited" tiles in range.
		HashSet<Tile> outerTiles = new HashSet<Tile>(); //"Found" tiles on the edge of our current range.
		outerTiles.add(center);
		while (radius > 0) {
			HashSet<Tile> newOuterTiles = new HashSet<Tile>();
			for (Tile tile : outerTiles) { //For each tile we haven't expanded from yet...
				innerTiles.add(tile);
				for (Tile adjacentTile : getAdjacentTiles(tile)) { //...get all tiles adjacent to it...
					if (adjacentTile != null && !innerTiles.contains(adjacentTile)) {
						newOuterTiles.add(adjacentTile); //...and add them to our list if they're not already there.
					}
				}
			}
			outerTiles = newOuterTiles;
			radius--;
		}
		innerTiles.addAll(outerTiles); //Fold in the tiles on the edge of the range.
		return innerTiles;
	}