Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
info['ATTACK_READY'] = state_variables[8]
info['ALTATTACK_READY'] = state_variables[9]
info['SELECTED_WEAPON'] = state_variables[10]
info['SELECTED_WEAPON_AMMO'] = state_variables[11]
info['AMMO1'] = state_variables[12]
info['AMMO2'] = state_variables[13]
info['AMMO3'] = state_variables[14]
info['AMMO4'] = state_variables[15]
info['AMMO5'] = state_variables[16]
info['AMMO6'] = state_variables[17]
info['AMMO7'] = state_variables[18]
info['AMMO8'] = state_variables[19]
info['AMMO9'] = state_variables[20]
info['AMMO0'] = state_variables[21]
info['POSITION_X'] = doom_fixed_to_double(self.game.get_game_variable(GameVariable.USER1))
info['POSITION_Y'] = doom_fixed_to_double(self.game.get_game_variable(GameVariable.USER2))
return info
game.new_episode()
# Use this to remember last shaping reward value.
last_total_shaping_reward = 0
while not game.is_episode_finished():
# Gets the state and possibly to something with it
state = game.get_state()
# Makes a random action and save the reward.
reward = game.make_action(choice(actions))
# Retrieve the shaping reward
fixed_shaping_reward = game.get_game_variable(vzd.GameVariable.USER1) # Get value of scripted variable
shaping_reward = vzd.doom_fixed_to_double(
fixed_shaping_reward) # If value is in DoomFixed format project it to double
shaping_reward = shaping_reward - last_total_shaping_reward
last_total_shaping_reward += shaping_reward
print("State #" + str(state.number))
print("Health: ", state.game_variables[0])
print("Last Reward:", reward)
print("Last Shaping Reward:", shaping_reward)
print("=====================")
# Sleep some time because processing is too fast to watch.
if sleep_time > 0:
sleep(sleep_time)
print("Episode finished!")
print("Total reward:", game.get_total_reward())