Browse Source

Added Conway4, a Moore Neighborhood Conway.

master
Josh Hofing 11 years ago
parent
commit
8d89e4df78
1 changed files with 33 additions and 0 deletions
  1. +33
    -0
      src/rules/Conway4.java

+ 33
- 0
src/rules/Conway4.java View File

@@ -0,0 +1,33 @@
package edu.stuy.goldfish.rules;

import edu.stuy.goldfish.Grid;
import edu.stuy.goldfish.Patch;

// An implementation of conway using Moore Neighborhoods.
public class Conway4 extends RuleSet {
public static int states = 2;

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).get4Neighbors();
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;
}

}

Loading…
Cancel
Save