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
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()
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