Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Kaart:
- def __init__(self, bestand: str):
- invoer = open(bestand, "r")
- self.kaart = list()
- data = invoer.readline()[:-1]
- while data:
- self.kaart.append(data)
- data = invoer.readline()[:-1]
- invoer.close()
- def isolement(self, r: int, k: int):
- kleinste_afstand = len(self.kaart)
- for i, line in enumerate(self.kaart):
- for j in range(len(line)):
- if self.kaart[i][j] == "#":
- afstand = self.berekenAfstand((i, j), (r, k))
- if afstand < kleinste_afstand:
- kleinste_afstand = afstand
- return kleinste_afstand
- def berekenAfstand(self, punt1: tuple, punt2: tuple):
- afstand = abs(punt1.__getitem__(0) - punt2.__getitem__(0)) + abs((punt1.__getitem__(1) - punt2.__getitem__(1)))
- return afstand
- def nemo(self):
- verste_punten = list()
- grootste_kleinste_afstand = 0
- for i, line in enumerate(self.kaart):
- for j in range(len(line)):
- if self.kaart[i][j] != "#":
- kleinste_afstand = self.isolement(i,j)
- if kleinste_afstand > grootste_kleinste_afstand:
- grootste_kleinste_afstand = kleinste_afstand
- verste_punten = list()
- verste_punten.append((i,j))
- elif kleinste_afstand == grootste_kleinste_afstand:
- verste_punten.append((i, j))
- return set(verste_punten)
- def __str__(self):
- verste_punten = list(self.nemo())
- kaart = self.kaart
- output_string = str()
- for punt in verste_punten:
- kaart[punt[0]] = kaart[punt[0]][:punt[1]] + "X" + kaart[punt[0]][punt[1]+1:]
- for lijn in kaart:
- output_string += lijn + "\n"
- output_string = output_string[:-1]
- return output_string
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement