diff --git a/src/backend/Agent.java b/src/backend/Agent.java index bc71b36..9a8cc1c 100644 --- a/src/backend/Agent.java +++ b/src/backend/Agent.java @@ -33,7 +33,7 @@ public abstract class Agent { // Does whatever the agent does during a step // then returns a boolean // if false, agent dies at end of turn - // see step function in Simulator + // see step function in Simulator public abstract boolean liveTurn(ArrayList neighbors, Simulator world); diff --git a/src/backend/Simulator.java b/src/backend/Simulator.java index 553ac57..5659dd1 100644 --- a/src/backend/Simulator.java +++ b/src/backend/Simulator.java @@ -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 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]; @@ -101,11 +92,17 @@ public class Simulator extends Thread { survivalRulesArray[x] = value; } //determines the number of alive neighboring cells needed to survive, and places them in the surviveCells list - } + } } + 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 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);