Also switched back to a class for RuleSet.
Because intefaces and static methods don't mix.
master
| @@ -6,14 +6,14 @@ public class Grid { | |||||
| public Grid() { | public Grid() { | ||||
| _grid = new Patch[1][1]; | _grid = new Patch[1][1]; | ||||
| _grid[0][0] = new Patch(this, 0, 0); | |||||
| _grid[0][0] = new Patch(this, 0, 0, 0, ""); | |||||
| } | } | ||||
| public Grid(int x, int y) { | public Grid(int x, int y) { | ||||
| _grid = new Patch[x][y]; | _grid = new Patch[x][y]; | ||||
| for (int i = 0; i < x; i++) { | for (int i = 0; i < x; i++) { | ||||
| for (int j = 0; j < y; j++) { | for (int j = 0; j < y; j++) { | ||||
| _grid[i][j] = new Patch(this, i, j); | |||||
| _grid[i][j] = new Patch(this, i, j, 0, ""); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -46,7 +46,7 @@ public class Patch { | |||||
| } | } | ||||
| public String toString() { | public String toString() { | ||||
| return _plabel; | |||||
| return _label; | |||||
| } | } | ||||
| public Patch[] get4Neighbors() { | public Patch[] get4Neighbors() { | ||||
| @@ -55,6 +55,7 @@ public class Patch { | |||||
| neighbors[1] = _grid.getPatch(_xcor - 1, _ycor); | neighbors[1] = _grid.getPatch(_xcor - 1, _ycor); | ||||
| neighbors[2] = _grid.getPatch(_xcor, _ycor + 1); | neighbors[2] = _grid.getPatch(_xcor, _ycor + 1); | ||||
| neighbors[3] = _grid.getPatch(_xcor, _ycor - 1); | neighbors[3] = _grid.getPatch(_xcor, _ycor - 1); | ||||
| return neighbors; | |||||
| } | } | ||||
| public Patch[] get8Neighbors() { | public Patch[] get8Neighbors() { | ||||
| @@ -67,6 +68,7 @@ public class Patch { | |||||
| neighbors[5] = _grid.getPatch(_xcor + 1, _ycor - 1); | neighbors[5] = _grid.getPatch(_xcor + 1, _ycor - 1); | ||||
| neighbors[6] = _grid.getPatch(_xcor - 1, _ycor + 1); | neighbors[6] = _grid.getPatch(_xcor - 1, _ycor + 1); | ||||
| neighbors[7] = _grid.getPatch(_xcor - 1, _ycor - 1); | neighbors[7] = _grid.getPatch(_xcor - 1, _ycor - 1); | ||||
| return neighbors; | |||||
| } | } | ||||
| public Patch clone() { | public Patch clone() { | ||||
| @@ -3,14 +3,13 @@ package edu.stuy.goldfish.rules; | |||||
| import edu.stuy.goldfish.Grid; | import edu.stuy.goldfish.Grid; | ||||
| import edu.stuy.goldfish.Patch; | import edu.stuy.goldfish.Patch; | ||||
| public class Conway implements RuleSet { | |||||
| states = 2; | |||||
| public class Conway extends RuleSet { | |||||
| public static int states = 2; | |||||
| @Override | |||||
| public static Grid run (Grid g) { | public static Grid run (Grid g) { | ||||
| Grid newGrid = new Grid(g.getWidth(), g.getHeight()); | Grid newGrid = new Grid(g.getWidth(), g.getHeight()); | ||||
| for (int i = 0; i < g.getWidth(); i++) { | for (int i = 0; i < g.getWidth(); i++) { | ||||
| for (int j = 0; j < j.getHeight(); j++) { | |||||
| for (int j = 0; j < g.getHeight(); j++) { | |||||
| Patch[] neighbors = g.getPatch(i, j).get8Neighbors(); | Patch[] neighbors = g.getPatch(i, j).get8Neighbors(); | ||||
| int numAlive = 0; | int numAlive = 0; | ||||
| for (Patch p : neighbors) | for (Patch p : neighbors) | ||||
| @@ -2,8 +2,8 @@ package edu.stuy.goldfish.rules; | |||||
| import edu.stuy.goldfish.Grid; | import edu.stuy.goldfish.Grid; | ||||
| public interface RuleSet { | |||||
| public static int states; | |||||
| public class RuleSet { | |||||
| public static int states = 0; | |||||
| /** | /** | ||||
| * Run this ruleset on a grid, returning the result. | * Run this ruleset on a grid, returning the result. | ||||
| @@ -12,6 +12,8 @@ public interface RuleSet { | |||||
| * | * | ||||
| * @return The new grid | * @return The new grid | ||||
| */ | */ | ||||
| public static Grid run (Grid g); | |||||
| public static Grid run (Grid g) { | |||||
| return g; | |||||
| } | |||||
| } | } | ||||