|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package edu.stuy.goldfish;
-
- import edu.stuy.goldfish.rules.*;
-
- public class Goldfish {
- private static final String[] RULES = {"Conway", "Conway4", "Life Without Death", "Brian's Brain"};
-
- private Grid _grid;
- private Render _render;
-
- public Goldfish() {
- int width = 128;
- int height = 128;
- _grid = new Grid(width, height);
- _render = new Render(width, height, _grid, RULES);
- }
-
- public void run() {
- setup();
- while (true) {
- if (!_render.paused) {
- String rule = _render.rule;
- if (rule.equals("Conway"))
- _grid = Conway.run(_grid);
- else if (rule.equals("Conway4"))
- _grid = Conway4.run(_grid);
- else if (rule.equals("Life Without Death"))
- _grid = LifeWithoutDeath.run(_grid);
- else if (rule.equals("Brian's Brain"))
- _grid = BriansBrain.run(_grid);
- }
- _render.setGrid(_grid);
- _render.run();
- _render.sleep();
- }
- }
-
-
- public static int getMaxStates(String rule) {
- if (rule.equals("Conway"))
- return Conway.states;
- else if (rule.equals("Conway4"))
- return Conway4.states;
- else if (rule.equals("Life Without Death"))
- return LifeWithoutDeath.states;
- else if (rule.equals("Brian's Brain"))
- return BriansBrain.states;
- return 2;
- }
- private void setup() {
- for (int i = 0; i < _grid.getWidth(); i += 16) {
- for (int j = 0; j < _grid.getHeight(); j += 16) {
- _grid.getPatch(i + 1, j + 0).setState(1);
- _grid.getPatch(i + 2, j + 1).setState(1);
- _grid.getPatch(i + 2, j + 2).setState(1);
- _grid.getPatch(i + 1, j + 2).setState(1);
- _grid.getPatch(i + 0, j + 2).setState(1);
- }
- }
- }
-
- public static void main(String[] args) {
- Goldfish g = new Goldfish();
- g.run();
- }
- }
|