Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. class Kaart:
  2. def __init__(self, bestand: str):
  3. invoer = open(bestand, "r")
  4. self.kaart = list()
  5. data = invoer.readline()[:-1]
  6. while data:
  7. self.kaart.append(data)
  8. data = invoer.readline()[:-1]
  9. invoer.close()
  10.  
  11. def isolement(self, r: int, k: int):
  12. kleinste_afstand = len(self.kaart)
  13. for i, line in enumerate(self.kaart):
  14. for j in range(len(line)):
  15. if self.kaart[i][j] == "#":
  16. afstand = self.berekenAfstand((i, j), (r, k))
  17. if afstand < kleinste_afstand:
  18. kleinste_afstand = afstand
  19. return kleinste_afstand
  20.  
  21. def berekenAfstand(self, punt1: tuple, punt2: tuple):
  22. afstand = abs(punt1.__getitem__(0) - punt2.__getitem__(0)) + abs((punt1.__getitem__(1) - punt2.__getitem__(1)))
  23. return afstand
  24.  
  25. def nemo(self):
  26. verste_punten = list()
  27. grootste_kleinste_afstand = 0
  28. for i, line in enumerate(self.kaart):
  29. for j in range(len(line)):
  30. if self.kaart[i][j] != "#":
  31. kleinste_afstand = self.isolement(i,j)
  32. if kleinste_afstand > grootste_kleinste_afstand:
  33. grootste_kleinste_afstand = kleinste_afstand
  34. verste_punten = list()
  35. verste_punten.append((i,j))
  36. elif kleinste_afstand == grootste_kleinste_afstand:
  37. verste_punten.append((i, j))
  38. return set(verste_punten)
  39.  
  40. def __str__(self):
  41. verste_punten = list(self.nemo())
  42. kaart = self.kaart
  43. output_string = str()
  44. for punt in verste_punten:
  45. kaart[punt[0]] = kaart[punt[0]][:punt[1]] + "X" + kaart[punt[0]][punt[1]+1:]
  46. for lijn in kaart:
  47. output_string += lijn + "\n"
  48. output_string = output_string[:-1]
  49. return output_string
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement