Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package game.systems;
- import factorys.PopulateWorld;
- import game.systems.abstractDef.AbstractSystem;
- import game.systems.aiSubSystems.*;
- import java.util.ArrayList;
- import java.util.stream.IntStream;
- import agentDefinitions.AgentWorld;
- import agentDefinitions.EvaderAgent;
- public class ResetSimulationSystem extends AbstractSystem {
- private long simulationStartMs;
- public static ArrayList<Double> timeTakenPerSimulation = new ArrayList<Double>();
- public ResetSimulationSystem() {
- simulationStartMs = System.currentTimeMillis();
- }
- int numRun = 0;
- int numRunsPerExperiment = 100;
- @Override
- public void proccessStep(AgentWorld world, float delta) {
- if (!anyEvaderLeftAlive(world)) {
- for (int i = 0; i < world.getAllAgents().size(); i++) {
- world.getAllAgents().get(i).setDead(true);
- }
- numRun++;
- double timeTaken = (System.currentTimeMillis() - simulationStartMs) / 1000.0;
- System.out.println(numRun + ": " + timeTaken);
- timeTakenPerSimulation.add(timeTaken);
- if (timeTakenPerSimulation.size() == numRunsPerExperiment) {
- PursuerSearchCoefficients.getCoefs();
- PursuerPursuitCoefficients.getCoefs();
- EvaderEvasionCoefficients.getCoefs();
- double sum = 0;
- for (double val:
- timeTakenPerSimulation) {
- sum += val;
- }
- System.out.println("Sum: \t" + sum);
- System.out.println("Average: \t" + sum/numRunsPerExperiment);
- setNewParameters();
- }
- PopulateWorld.addAllAgents(world);
- simulationStartMs = System.currentTimeMillis();
- }
- }
- private void setNewParameters() {
- CoefficientFactory.USED_PURSUER_COEFFICIENTS = new PursuerCoefficients();
- CoefficientFactory.USED_EVADER_COEFFICIENTS = new EvaderCoefficients();
- }
- private boolean anyEvaderLeftAlive(AgentWorld world) {
- // Returns if the agent list contains any evader agents
- return world.getAllAgents().stream().anyMatch(a -> a.getClass() == EvaderAgent.class);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement