Example #1
0
    def __init__(self, args: WorldArgs, world: GenericWorld):
        self.args = args
        self.world = world

        # Initialize screen
        self.screen = pygame.display.set_mode((s.WIDTH, s.HEIGHT))
        pygame.display.set_caption('BombeRLe')
        icon = pygame.image.load(f'assets/bomb_yellow.png')
        pygame.display.set_icon(icon)

        # Background and tiles
        self.background = pygame.Surface((s.WIDTH, s.HEIGHT))
        self.background = self.background.convert()
        self.background.fill((0, 0, 0))
        self.t_wall = pygame.image.load('assets/brick.png')
        self.t_crate = pygame.image.load('assets/crate.png')

        # Font for scores and such
        font_name = dirname(__file__) + '/assets/emulogic.ttf'
        self.fonts = {
            'huge': pygame.font.Font(font_name, 20),
            'big': pygame.font.Font(font_name, 16),
            'medium': pygame.font.Font(font_name, 10),
            'small': pygame.font.Font(font_name, 8),
        }

        self.frame = 0
Example #2
0
    def __init__(self, color, agent_name, code_name, train: bool, reset: bool,
                 backend: "AgentBackend"):
        self.backend = backend

        # Load custom avatar or standard robot avatar of assigned color
        self.color = color
        try:
            self.avatar = pygame.image.load(
                f'agent_code/{code_name}/avatar.png')
            assert self.avatar.get_size() == (30, 30)
        except Exception as e:
            self.avatar = pygame.image.load(f'assets/robot_{self.color}.png')
        # Load custom bomb sprite
        try:
            self.bomb_sprite = pygame.image.load(
                f'agent_code/{code_name}/bomb.png')
            assert self.bomb_sprite.get_size() == (30, 30)
        except Exception as e:
            self.bomb_sprite = None
        # Prepare overlay that will indicate dead agent on the scoreboard
        self.shade = pygame.Surface((30, 30), pygame.SRCALPHA)
        self.shade.fill((0, 0, 0, 208))

        self.name = agent_name
        self.code_name = code_name
        self.train = train
        self.reset = reset
        #print('AGENT: self.train', self.train)
        self.total_score = 0

        self.dead = None
        self.score = None
        self.trophies = None

        self.events = None
        self.available_think_time = None

        self.x = None
        self.y = None
        self.bombs_left = None

        self.last_game_state = None
        self.last_action = None

        self.setup()
Example #3
0
    def __init__(self, args: WorldArgs, world: GenericWorld):
        self.args = args
        self.world = world

        # Initialize screen
        self.screen = pygame.display.set_mode((s.WIDTH, s.HEIGHT))
        pygame.display.set_caption('BombeRLe')
        icon = pygame.image.load(f'assets/bomb_yellow.png')
        pygame.display.set_icon(icon)

        # Background and tiles
        self.background = pygame.Surface((s.WIDTH, s.HEIGHT))
        self.background = self.background.convert()
        self.background.fill((0, 0, 0))
        self.t_wall = pygame.image.load('assets/brick.png')
        self.t_crate = pygame.image.load('assets/crate.png')

        self.overlays = {}
        for file in glob.glob("agent_code/grad_cam/output/*.jpeg"):
            if file.endswith('.jpeg'):
                key = file[:-5].split("/")[-1]
                img = pygame.image.load(file).convert()
                img.set_alpha(128)
                img = pygame.transform.scale(img, (450, 450))
                self.overlays[key] = img

        # Font for scores and such
        font_name = dirname(__file__) + '/assets/emulogic.ttf'
        self.fonts = {
            'huge': pygame.font.Font(font_name, 20),
            'big': pygame.font.Font(font_name, 16),
            'medium': pygame.font.Font(font_name, 10),
            'small': pygame.font.Font(font_name, 8),
        }

        self.frame = 0