load and save agent
This commit is contained in:
parent
127cc64841
commit
d39dd5d90e
|
|
@ -1,2 +1,2 @@
|
|||
1;3;5;8
|
||||
3;5;7;
|
||||
3;5;7
|
||||
|
|
|
|||
|
|
|
@ -129,11 +129,11 @@ public class Simulator extends Thread {
|
|||
agent.getX(),
|
||||
agent.getY(),
|
||||
ANIMAL_AREA_RADIUS);}
|
||||
//if(!agent.liveTurn(
|
||||
// neighbors,
|
||||
//this)) {
|
||||
//agents.remove(agent);
|
||||
//{
|
||||
/*if(!agent.liveTurn(
|
||||
neighbors,
|
||||
this)) {
|
||||
agents.remove(agent);
|
||||
{*/
|
||||
|
||||
|
||||
// Apply Game of Life rules
|
||||
|
|
@ -415,23 +415,46 @@ public class Simulator extends Thread {
|
|||
|
||||
|
||||
public ArrayList<String> getAgentsSave() {
|
||||
ArrayList<String> agentsSave = new ArrayList<>();
|
||||
for (int j = 0; j < getHeight(); j++) {
|
||||
StringBuilder lineState = new StringBuilder();
|
||||
for (int i = 0 ; i < getWidth() ; i++) {
|
||||
lineState.append(getCell(i, j));
|
||||
if (j < getHeight() -1) {
|
||||
lineState.append(",");
|
||||
}
|
||||
ArrayList<String> agentsList = new ArrayList<String>();
|
||||
String sheepLine = "1,";
|
||||
String wolfLine = "2,";
|
||||
for (Agent agent : agents) {
|
||||
int x = agent.getX();
|
||||
int y = agent.getY();
|
||||
if (agent instanceof Sheep)
|
||||
{
|
||||
sheepLine = sheepLine + x + ";" + y + ",";
|
||||
}
|
||||
else if (agent instanceof Wolf)
|
||||
{
|
||||
wolfLine = wolfLine + x + ";" + y + ",";
|
||||
}
|
||||
agentsSave.add(lineState.toString());
|
||||
}
|
||||
return agentsSave;
|
||||
agentsList.add(sheepLine);
|
||||
agentsList.add(wolfLine);
|
||||
return agentsList;
|
||||
}
|
||||
|
||||
public void loadAgents(ArrayList<String> stringArray) {
|
||||
//TODO : Same idea as other load methods, but for agent list
|
||||
|
||||
for(int y =0; y<stringArray.size();y++) {
|
||||
String line = stringArray.get(y);
|
||||
String[] lineElements = line.split(",");
|
||||
int agentType = Integer.parseInt(lineElements[0]);
|
||||
for(int x=1; x<lineElements.length;x++) {
|
||||
String[] coordinates = lineElements[x].split(";");
|
||||
int i = Integer.parseInt(coordinates[0]);
|
||||
int j = Integer.parseInt(coordinates[1]);
|
||||
if (agentType == 1) {
|
||||
Sheep newSheep = new Sheep(i, j);
|
||||
agents.add(newSheep);
|
||||
}
|
||||
if (agentType == 2) {
|
||||
Wolf newWolf = new Wolf(i, j);
|
||||
agents.add(newWolf);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue