# ensures agent does not get stuck for prolonged periods if len(history) == 5: if history[0][0] == history[4][0] and history[0][ 1] == history[4][1]: hfo.act(REORIENT) history = [] continue hfo.act(MOVE) else: state, valid_teammates = state_representer.get_representation( features, args.numTeammates) print("Valid Teammates: ", valid_teammates) if 0 in valid_teammates: q_learner.set_invalid(state, valid_teammates) if action is not None: reward = get_reward(status) reward_printer(state, action, reward) q_learner.update(state, action, reward) action = q_learner.get_action(state, valid_teammates) if action == 0: print("Action Taken: DRIBBLE \n") hfo.act(DRIBBLE) elif action == 1: print("Action Taken: SHOOT \n") hfo.act(SHOOT) elif args.numTeammates > 0: