@@ -0,0 +1,1064 @@
+%22%22%22%0AModule that holds classes that represent an agent's perception handler.%0A%22%22%22%0A%0Aimport abc%0Aimport world%0Aimport structure%0A%0Aclass PerceptionHandler(object):%0A%0A    @abc.abstractmethod%0A    def perceive(self, agent, world):%0A        %22%22%22%0A        Generates a percept given an agent and a world.%0A%0A        :param agent: The agent to generate the percept for.%0A        :param world: The world to generate the percept for.%0A        :return: The percept.%0A        %22%22%22%0A        raise NotImplementedError(%22Should be implemented by child%22)%0A%0Aclass EmptyPerceptionHandler(PerceptionHandler):%0A%0A    def perceive(self, agent, world):%0A        return %22%22%0A%0Aclass BasicPerceptionHandler(PerceptionHandler):%0A%0A    def perceive(self, agent_, world_):%0A        for delta in range(1, 10):%0A            pos = world.Position(agent_.get_position())%0A            pos.add(agent_.get_move_delta(delta))%0A%0A            entities = world_.get_entities_at(pos)%0A            if len(entities) %3E 0:%0A                if isinstance(entities%5B0%5D, structure.Wall):%0A                    return %22w%25s%22 %25 delta%0A%0A        return %22%22

Add perception handlers.