loadAgent

This commit is contained in:
titou 2024-05-27 17:13:02 +02:00
parent a3a36239ed
commit 7a3716e537
2 changed files with 47 additions and 6 deletions

View File

@ -36,5 +36,7 @@ public abstract class Agent {
// see step function in Simulator
public abstract boolean liveTurn(ArrayList<Agent> neighbors, Simulator world);
public String save() {
return "";
}
}

View File

@ -354,14 +354,53 @@ public class Simulator extends Thread {
//DONE
public ArrayList<String> getAgentsSave() {
//TODO : Same idea as the other save method, but for agents
return null;
ArrayList<String> agentsSave = new ArrayList<>();
for (Agent agent : agents) {
agentsSave.add(agent.save());
}
return agentsSave;
}
//DONE
public void loadAgents(ArrayList<String> stringArray) {
//TODO : Same idea as other load methods, but for agent list
public void loadAgents(ArrayList<String> agentData) {
synchronized (agents) {
agents.clear();
for (String data : agentData) {
Agent agent = createAgent(data);
if (agent != null) {
agents.add(agent);
}
}
}
}
private Agent createAgent(String agentData) {
String[] parts = agentData.split(",");
if (parts.length < 1) {
return null;
}
String agentType = parts[0];
switch (agentType) {
case "Sheep":
return createSheep(parts);
default:
System.out.println("Unknown agent type: " + agentType);
return null;
}
}
private Sheep createSheep(String[] parts) {
if (parts.length >= 3) {
int x = Integer.parseInt(parts[1]);
int y = Integer.parseInt(parts[2]);
return new Sheep(x, y);
} else {
System.out.println("Invalid Sheep data: " + String.join(",", parts));
return null;
}
}
//DONE
/**
* used by label in interface to show the active click action