| @@ -10,15 +10,16 @@ public class BriansBrain extends RuleSet { | |||||
| Grid newGrid = new Grid(g.getWidth(), g.getHeight(), false); | Grid newGrid = new Grid(g.getWidth(), g.getHeight(), false); | ||||
| for (int i = 0; i < g.getWidth(); i++) { | for (int i = 0; i < g.getWidth(); i++) { | ||||
| for (int j = 0; j < g.getHeight(); j++) { | for (int j = 0; j < g.getHeight(); j++) { | ||||
| Patch[] neighbors = g.getPatch(i, j).get8Neighbors(); | |||||
| int numAlive = 0; | |||||
| for (Patch neighbor : neighbors) | |||||
| if (neighbor.getState() == 2) numAlive++; | |||||
| Patch orig = g.getPatch(i, j); | Patch orig = g.getPatch(i, j); | ||||
| Patch p = g.getPatch(i, j).clone(newGrid); | Patch p = g.getPatch(i, j).clone(newGrid); | ||||
| if (orig.getState() == 0 && numAlive == 2) p.setState(2); | |||||
| if (orig.getState() == 1) p.setState(0); // Dying cells die. | if (orig.getState() == 1) p.setState(0); // Dying cells die. | ||||
| if (orig.getState() == 2) p.setState(1); // Make living cells dying. | |||||
| else if (orig.getState() == 2) p.setState(1); // Make living cells dying. | |||||
| else { | |||||
| int numAlive = 0; | |||||
| for (Patch neighbor : orig.get8Neighbors()) | |||||
| if (neighbor.getState() == 2) numAlive++; | |||||
| if (orig.getState() == 0 && numAlive == 2) p.setState(2); | |||||
| } | |||||
| newGrid.setPatch(i,j,p); | newGrid.setPatch(i,j,p); | ||||
| } | } | ||||
| } | } | ||||