def __init__(self, cfg): # Replay memory self.memory = ReplayBuffer(**cfg['agent']['memory']) # Environment configuration self.action_shape = cfg['env']['action_shape'] # Algorithm parameters self.exploration_mu, self.exploration_theta, self.exploration_sigma = cfg['agent']['noise'] self.noise = OUNoise(self.action_shape, self.exploration_mu, self.exploration_theta, self.exploration_sigma) self.gamma = cfg['agent']['gamma'] self.tau = cfg['agent']['tau'] state_flatten_shape = [np.prod(self.memory.flatten_state_shape)] # Actor Model self.actor = Actor(state_flatten_shape, self.action_shape, cfg['env']['action_range'], self.tau, self.memory.batch_size, cfg['actor']) # Critic Model self.critic = Critic(state_flatten_shape, self.action_shape, self.tau, cfg['critic']) # Flag & Counter self.add_noise = True self.episode = 0 self.max_episode_explore = 100
def player(self, x, y): sprites = self.sprites alive = True pc = creatures.Creature('Bert', 40) container = containers.Container() player = Actor(x, y, sprites.width, sprites.height, sprites.S_PLAYER, 'Human', self.log, alive, pc, None, container) return player
def debugItem(self, x, y): sprites = self.sprites alive = False creature = None ai = None item = items.Item(self.level, identified=True) container = None debugItem = Actor(x, y, sprites.width, sprites.height, sprites.S_DBG_ITEM, 'Debug_Item', self.log, alive, creature, ai, container, item) return debugItem
def beano(self, x, y): sprites = self.sprites on_death = deaths.drop_corpse() alive = True creature = creatures.Creature('Beano', 15, on_death) ai = ais.basic_chase(4) container = None item = items.Item(self.level) beano = Actor(x, y, sprites.width, sprites.height, sprites.S2_BEANO, 'Bean', self.log, alive, creature, ai, container, item) return beano
def blode(self, x, y): sprites = self.sprites on_death = deaths.drop_corpse() alive = True creature = creatures.Creature('Blode', 5, on_death) ai = ais.Ai_Test() container = None item = items.Item(self.level) blode = Actor(x, y, sprites.width, sprites.height, sprites.S2_BLODE, 'Slime', self.log, alive, creature, ai, container, item) return blode
def heal_potion(self, x, y): on_use = heal sprites = self.sprites alive = False creature = None ai = None item = items.Item(self.level, 0, 0, 1, on_use) container = None heal_potion = Actor(x, y, sprites.width, sprites.height, sprites.S_HEAL_POTION, 'Potion of Minor Healing', self.log, alive, creature, ai, container, item) return heal_potion
def initialize(): camera.position = Vector3(0.0, 0.0, 5.0) board = Board(30, 25) cursor = Actor() cursor.set_position(3, 3) cursor.set_size(1.25) world.update_layer(cursor, 5) cursor.set_sprite("Resources/Images/cursor.png") soldier = Actor() soldier.load_sprite_frames("Resources/Images/soldierA") soldier.set_size(1.0, 1.0) soldier.set_position(3.0, 3.0) soldier.play_sprite_animation(1.0, 0, 1) world.add(soldier) count = Actor() count.set_position(3.0, 3.0) count.set_sprite("Resources/Images/10.png") world.add(count)
def __init__(self, height, width): tile_names = [ "Resources/images/roadA.png", "Resources/images/treesA.png", "Resources/images/grassA.png" ] self.height = height self.width = width tiles = [0] * self.width for i in range(0, self.width): tiles[i] = [0] * self.height for j in range(0, self.height): tiles[i][j] = open_image(tile_names[randint(0, 2)]) board_texture = merge_images(tiles) board_actor = Actor() board_actor.set_sprite(board_texture)
def add_members(self, gender='male', num=1): """ Add members into family :param gender: male/female. if num > 1 then randomize :param num: default 1. :return: list of node ids added, new node id """ node_ct = self.node_ct added_nodes = [] for x in range(num): if num > 1: gender = random.choice(['male', 'female']) # select a name that is not taken name = names.get_first_name(gender=gender) while name in self.taken_names: name = names.get_first_name(gender=gender) self.taken_names.add(name) node = Actor( name=name, gender=gender, node_id=node_ct) added_nodes.append(node) self.family.add_node(node_ct, data=node) node_ct += 1 self.node_ct = node_ct return added_nodes
def __init__(self, x, y, sprite): self.actor = Actor() self.actor.set_position(x, y) self.actor.set_sprite(sprite) world.add(self.actor)