package Statistics;
import Actions.EnvironmentState;
import EnvironmentPluginAPI.Service.ICycleReplay;
import Logic.GridWorldConfiguration;
import java.util.*;
public class CliffReplay implements ICycleReplay<EnvironmentState, GridWorldConfiguration> {
private UUID id;
private Date replayDate;
private List<String> agentNames;
private int nrOfTurns;
private List<EnvironmentState> states;
private GridWorldConfiguration configuration;
public CliffReplay(String agentName, int nrOfTurns, GridWorldConfiguration configuration) {
this.nrOfTurns = nrOfTurns;
this.configuration = configuration;
id = UUID.randomUUID();
replayDate = new Date();
agentNames = new LinkedList<String>();
agentNames.add(agentName);
states = new LinkedList<EnvironmentState>();
}
@Override
public UUID getReplayId() {
return id;
}
@Override
public GridWorldConfiguration getConfiguration() {
return configuration;
}
@Override
public Date getReplayDate() {
return replayDate;
}
@Override
public List<String> getAgentSystems() {
return agentNames;
}
@Override
public String getAgentSystemsWithGoalReached() {
return agentNames.get(0);
}
public void countTurn() {
nrOfTurns++;
}
@Override
public int getNumberOfTurns() {
return nrOfTurns;
}
public void addState(EnvironmentState state) {
states.add(state);
}
/**
* Returns an iterator over a set of elements of type T.
*
* @return an Iterator.
*/
@Override
public Iterator iterator() {
return states.iterator();
}
}