Browse Source

Implement Conway, add states variable to ruleset.

master
Josh Hofing 12 years ago
parent
commit
f4c144f22c
2 changed files with 23 additions and 6 deletions
  1. +22
    -5
      src/rules/Conway.java
  2. +1
    -1
      src/rules/RuleSet.java

+ 22
- 5
src/rules/Conway.java View File

@@ -4,13 +4,30 @@ import edu.stuy.goldfish.Grid;
import edu.stuy.goldfish.Patch;

public class Conway implements RuleSet {

public Conway () {
Patch p = new Patch();
}
states = 2;

@Override
public static Grid run (Grid g) {
return g; //TODO: do stuff.
Grid newGrid = new Grid(g.getWidth(), g.getHeight());
for (int i = 0; i < g.getWidth(); i++) {
for (int j = 0; j < j.getHeight(); j++) {
Patch[] neighbors = g.getPatch(i, j).get8Neighbors();
int numAlive = 0;
for (Patch p : neighbors)
if (p.getState() == 1) numAlive++;
Patch p = g.getPatch(i,j).clone();
if (numAlive < 2) {
p.setState(0); //Dies by underpopulation
}
if (numAlive > 3) {
p.setState(0); //Dies by overpopulation
}
if (numAlive == 3)
p.setState(1); //Born with 3 neighbors.
newGrid.setPatch(i,j,p);
}
}
return newGrid;
}

}

+ 1
- 1
src/rules/RuleSet.java View File

@@ -3,6 +3,7 @@ package edu.stuy.goldfish.rules;
import edu.stuy.goldfish.Grid;

public interface RuleSet {
public static int states;

/**
* Run this ruleset on a grid, returning the result.
@@ -13,5 +14,4 @@ public interface RuleSet {
*/
public static Grid run (Grid g);


}

Loading…
Cancel
Save