public static void calculateDistanceToOpponentBorder(BotState state) {
		List<Region> guessedOpponentSpots = HeuristicMapModel.getGuessedOpponentRegions();
		// Give all guessed opponent spots a distance of 0
		for (Region opponentSpot : guessedOpponentSpots) {
			opponentSpot.setDistanceToOpponentBorder(0);
		}
		// Give each other region a distance of 1000 as initialization
		for (Region region : state.getVisibleMap().getRegions()) {
			if (!guessedOpponentSpots.contains(region)) {
				region.setDistanceToOpponentBorder(1000);
			}
		}
		// Now do the real stuff
		boolean hasSomethingChanged = true;
		while (hasSomethingChanged) {
			hasSomethingChanged = false;
			for (Region region : state.getVisibleMap().getRegions()) {
				Region closestNeighbor = getClosestNeighborToOpponentBorder(state, region);
				if (closestNeighbor.getDistanceToOpponentBorder() < region.getDistanceToOpponentBorder()
						&& region.getDistanceToOpponentBorder() != 1 + closestNeighbor.getDistanceToOpponentBorder()) {
					region.setDistanceToOpponentBorder(closestNeighbor.getDistanceToOpponentBorder() + 1);
					hasSomethingChanged = true;
				}
			}
		}

	}