Beispiel #1
0
    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