def construct_map(self, map_path): directions = { '>': (1, 0), '^': (0, 1), '<': (-1, 0), 'v': (0, -1), } map = [[]] with open(map_path, 'rb') as f: for y, line in enumerate(f): row = [] for x, char in enumerate(line.strip()): char = chr(char) if char in self.KAREL_CHARS: self.karel = Karel((x + 1, y + 1), directions[char]) char = '.' elif char == self.BEEPER_CHAR: self.beepers.append((x + 1, y + 1)) char = '.' row.append(char) map.append(['#'] + row + ['#']) map.append([]) for _ in range(len(map[1])): map[0].append('#') map[-1].append('#') self.map = map