// Cell class Cell { private int x; private int y; private int dnaPointer; public Cell(int x, int y, int dnaPointer) { this.x = x; this.y = y; this.dnaPointer = dnaPointer; } public void update(int direction, int dnaLength) { switch (direction) { case 0: // N y--; break; case 1: // NE y--; x++; break; case 2: // E x++; break; case 3: // SE y++; x++; break; case 4: // S y++; break; case 5: // SW y++; x--; break; case 6: // W x--; break; case 7: // NW y--; x--; break; } if (x < 0) x = noColumns - 1; if (x == noColumns) x = 0; if (y < 0) y = noRows - 1; if (y == noRows) y = 0; dnaPointer = (dnaPointer + 1) % dnaLength; } public int getX() { return x; } public int getY() { return y; } public void setDnaPointer(int y) { this.dnaPointer = dnaPointer; } public int getDnaPointer() { return dnaPointer; } }