diff --git a/src/Goldfish.java b/src/Goldfish.java index 319903b..872346c 100644 --- a/src/Goldfish.java +++ b/src/Goldfish.java @@ -15,29 +15,19 @@ public class Goldfish { public void run () { //TODO: make it run. - _grid.getPatch(1,0).setState(1); - _grid.getPatch(2,1).setState(1); - _grid.getPatch(2,2).setState(1); - _grid.getPatch(1,2).setState(1); - _grid.getPatch(0,2).setState(1); + _grid.getPatch(1,0).setState(2); + _grid.getPatch(2,1).setState(2); + _grid.getPatch(2,2).setState(2); + _grid.getPatch(1,2).setState(2); + _grid.getPatch(0,2).setState(2); System.out.println(_grid); - _grid = Conway.run(_grid); - System.out.println("------------"); - System.out.println(_grid); - - _grid = Conway.run(_grid); - System.out.println("------------"); - System.out.println(_grid); - - _grid = Conway.run(_grid); - System.out.println("------------"); - System.out.println(_grid); - - _grid = Conway.run(_grid); - System.out.println("------------"); - System.out.println(_grid); - } + for (int i = 0; i < 6; i++) { + _grid = BriansBrain.run(_grid); + System.out.println("------------"); + System.out.println(_grid); + } + } public static void main (String[] args) { Goldfish g = new Goldfish(); diff --git a/src/rules/BriansBrain.java b/src/rules/BriansBrain.java new file mode 100644 index 0000000..3f12628 --- /dev/null +++ b/src/rules/BriansBrain.java @@ -0,0 +1,27 @@ +package edu.stuy.goldfish.rules; + +import edu.stuy.goldfish.Grid; +import edu.stuy.goldfish.Patch; + +public class BriansBrain extends RuleSet { + public static int states = 3; + + public static Grid run (Grid g) { + Grid newGrid = new Grid(g.getWidth(), g.getHeight()); + for (int i = 0; i < g.getWidth(); i++) { + 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 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() == 2) p.setState(1); //Make living cells dying. + newGrid.setPatch(i,j,p); + } + } + return newGrid; + } +}