Browse Source

Merge branch 'master' of github.com:earwig/goldfish

master
Josh Hofing 11 years ago
parent
commit
deaf2a5e07
2 changed files with 77 additions and 16 deletions
  1. +24
    -4
      src/Grid.java
  2. +53
    -12
      src/Patch.java

+ 24
- 4
src/Grid.java View File

@@ -11,13 +11,29 @@ public class Grid {

public Grid(int x, int y) {
_grid = new Patch[x][y];
for(int i = 0; i < x; i++) {
for(int j = 0; j < y; j++) {
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
_grid[i][j] = new Patch(this, i, j);
}
}
}

private static int normalizeX(int x) {
while (x >= getWidth())
x -= getWidth();
while (x < 0)
x += getWidth();
return x;
}

private static int normalizeY(int y) {
while (y >= getHeight())
y -= getHeight();
while (y < 0)
y += getHeight();
return y;
}

public int getWidth() {
return _grid.length;
}
@@ -27,17 +43,21 @@ public class Grid {
}

public Patch getPatch(int x, int y) {
x = normalizeX(x);
y = normalizeY(y);
return _grid[x][y];
}

public void setPatch(int x, int y, Patch p) {
x = normalizeX(x);
y = normalizeY(y);
_grid[x][y] = p;
}

public String toString() {
String ans = "";
for(int i = 0; i < _grid.length; i++) {
for(int j = 0; j < _grid[i].length; j++) {
for (int i = 0; i < _grid.length; i++) {
for (int j = 0; j < _grid[i].length; j++) {
ans += _grid[i][j];
}
ans += "\n";


+ 53
- 12
src/Patch.java View File

@@ -1,19 +1,20 @@
package edu.stuy.goldfish;

public class Patch {
private int _pxcor, _pycor, _state;
private String _plabel;
private Grid _myGrid;
public Patch(Grid grid, int xcor, int ycor, int state) {
_myGrid = grid;
_pxcor = xcor;
_pycor = ycor;
private int _xcor, _ycor, _state;
private String _label;
private Grid _grid;
public Patch(Grid grid, int xcor, int ycor, int state, String label) {
_grid = grid;
_xcor = xcor;
_ycor = ycor;
_state = state;
_label = label;
}

public Patch() {
this(new Grid(), 0, 0, 0);
this(new Grid(), 0, 0, 0, "");
}

public Grid getGrid() {
@@ -21,14 +22,54 @@ public class Patch {
}

public int getX() {
return _pxcor;
return _xcor;
}

public int getY() {
return _pycor;
return _ycor;
}

public int getState() {
return _state;
}

public void setState(int state) {
_state = state;
}

public String getLabel() {
return _label;
}

public void setLabel(String label) {
_label = label;
}

public String toString() {
return _plabel;
}
}

public Patch[] get4Neighbors() {
Patch[] neighbors = new Patch[4];
neighbors[0] = _grid.getPatch(_xcor + 1, _ycor);
neighbors[1] = _grid.getPatch(_xcor - 1, _ycor);
neighbors[2] = _grid.getPatch(_xcor, _ycor + 1);
neighbors[3] = _grid.getPatch(_xcor, _ycor - 1);
}

public Patch[] get8Neighbors() {
Patch[] neighbors = new Patch[8];
neighbors[0] = _grid.getPatch(_xcor + 1, _ycor);
neighbors[1] = _grid.getPatch(_xcor - 1, _ycor);
neighbors[2] = _grid.getPatch(_xcor, _ycor + 1);
neighbors[3] = _grid.getPatch(_xcor, _ycor - 1);
neighbors[4] = _grid.getPatch(_xcor + 1, _ycor + 1);
neighbors[5] = _grid.getPatch(_xcor + 1, _ycor - 1);
neighbors[6] = _grid.getPatch(_xcor - 1, _ycor + 1);
neighbors[7] = _grid.getPatch(_xcor - 1, _ycor - 1);
}

public Patch clone() {
return new Patch(_grid, _xcor, _ycor, _state, _label);
}
}

Loading…
Cancel
Save