Esempio n. 1
0
def load_grid(agent):
    wait_time = 0
    keeper = TimeKeeper()
    while wait_time < 10:
        #sys.stdout.write(".")
        world_state = agent.getWorldState()
        if not world_state.is_mission_running:
            return None
        if len(world_state.errors) > 0:
            raise AssertionError('Could not load grid.')

        if world_state.number_of_observations_since_last_state > 0 and \
           json.loads(world_state.observations[-1].text):
            result = json.loads(world_state.observations[-1].text)
            result["time"] = time.time()
            return result

        keeper.advance_by(0.05)
        wait_time += 0.05
Esempio n. 2
0
            #Run shooter ticks if target exists
            #agent step
            if initial_delay > 0:
                initial_delay -= 1
            else:
                if shoot_agent.shooter_step(shooter_obs, move_agent, target):
                    #Change mover direction
                    my_mission.ai_toggle(move_agent, target.transform)

            my_mission.ai_step(move_agent, target.transform)

            #If shoot agent hits target, end mission early
            if shoot_agent.end_mission:
                print("Ending mission early...")
                break
            keeper.advance_by(0.05)

        print()
        print("Mission ended")
        if shoot_agent.total_shots > 0:
            print("Mission Accuracy: {}/{} -- {}".format(
                shoot_agent.mission_hits, shoot_agent.mission_shots,
                (shoot_agent.mission_hits * 1.0 / shoot_agent.mission_shots)))
            print("Total Accuracy: {}/{} -- {}".format(
                shoot_agent.total_hits, shoot_agent.total_shots,
                (shoot_agent.total_hits * 1.0 / shoot_agent.total_shots)))
            mission_accuracies.append(shoot_agent.mission_hits * 1.0 /
                                      shoot_agent.mission_shots)
        else:
            mission_accuracies.append(0)
            # Mission has ended.