This commit is contained in:
benoi 2024-05-30 11:13:34 +02:00
commit 61e6b7a42a
2 changed files with 34 additions and 22 deletions

View File

@ -11,8 +11,8 @@ public class Simulator extends Thread {
private MyInterface mjf;
private final int COL_NUM = 100;
private final int LINE_NUM = 100;
private int COL_NUM = 10;
private int LINE_NUM = 10;
private final int LIFE_TYPE_NUM = 4;
//Conway Radius : 1
private final int LIFE_AREA_RADIUS = 1;
@ -66,14 +66,6 @@ public class Simulator extends Thread {
return LINE_NUM;
}
public int[] getBirthRulesArray() {
return this.birthRulesArray;
}
public int[] getSurvivalRulesArray() {
return this.survivalRulesArray;
}
public void loadRule(ArrayList<String> row) {
String surviveRulesRow = row.get(0);
String[] surviveCells = surviveRulesRow.split(";");
@ -87,7 +79,6 @@ public class Simulator extends Thread {
System.out.println("wrong file buddy, this one's empty");
}else if(surviveCells.length<=0) {
System.out.println("wrong file buddy, this one's does not have survival rules, won't work");
return;
}else {
for (int x = 0; x < birthCells.length; x++) {
String elem = birthCells[x];
@ -105,7 +96,13 @@ public class Simulator extends Thread {
}
public int[] getBirthRulesArray() {
return this.birthRulesArray;
}
public int[] getSurvivalRulesArray() {
return this.survivalRulesArray;
}
//Should probably stay as is
@ -156,11 +153,27 @@ public class Simulator extends Thread {
}
/*public void setWorld(int[][] world, int width, int height) {
public void setWorld(int[][] world, int width, int height) {
this.world = world;
this.COL_NUM = width;
this.LINE_NUM = height;
}*/
}
private boolean shouldSurvive(int aliveNeighbors) {
for (int value : getSurvivalRulesArray()) {
if ( value == aliveNeighbors) {
return true;
}
}return false;
}
private boolean shouldBeBorn(int aliveNeighbors) {
for(int value : getBirthRulesArray()) {
if (value == aliveNeighbors) {
return true;
}
}return false;
}
@ -205,19 +218,18 @@ public class Simulator extends Thread {
for (int y = 0; y < getHeight(); y++) {
int aliveNeighbors = countAliveNeighbors(x, y);
if (getCell(x, y) == 1) {
//newWorld[x][y] = shouldSurvive(aliveNeighbors) ? 1 : 0;
newWorld[x][y] = shouldSurvive(aliveNeighbors) ? 1 : 0;
} else {
//newWorld[x][y] = shouldBeBorn(aliveNeighbors) ? 1 : 0;
newWorld[x][y] = shouldBeBorn(aliveNeighbors) ? 1 : 0;
}
}
}
//setWorld(newWorld, getWidth(), getHeight());
setWorld(newWorld, getWidth(), getHeight());
}
//world = newWorld;
@ -282,8 +294,8 @@ public class Simulator extends Thread {
} else if (clickActionFlag==2) { // wolf
ArrayList<Agent> nearby=getNeighboringAnimals(x,y,1);
if (nearby.isEmpty()) {
Sheep sheep = new Sheep(x,y);
agents.add(sheep);
Wolf wolf = new Wolf(x,y);
agents.add(wolf);
}else {
for (Agent animal:nearby) {
agents.remove(animal);