from Vec import Vec2 class Walls: """Contains the walls of a game. Supports iterating over the walls and checking if there is a wall at a specific coordinate. Useful as a wrapper to later increase performance of these operations.""" _walls = [] def __init__(self, walls): self._walls = walls def fromString(wallString): walls = [] y = 0 for line in wallString.split('\n'): x = 0 for char in line: if char == "#": walls.append(Vec2(x, y)) x += 1 y += 1 return Walls(walls) def walls(self): return self._walls def wallAt(self, pos): return (pos in self._walls) def width(self): return max(self._walls, key=lambda p: p.x).x + 1 def height(self): return max(self._walls, key=lambda p: p.y).y + 1