package gameoflife3; public class BooleanArrayColony implements Colony { private int width; // y private int height; // x private boolean[][] grid; /* * Create a constructor to help create new instances of a Colony. */ public BooleanArrayColony(int y, int x) { this.width = x; this.height = y; grid = new boolean[width][height]; } public void copyInto(Colony copyTo, int y, int x, boolean deadKillLive) { int n = 0; int m = 0; for (int i = y; i-y < this.getWidth(); i++) { for (int j = x; j-x < this.getHeight(); j++) { if (deadKillLive) { copyTo.setCell(i, j, this.getCell(n, m)); } else { if (this.getCell(n, m)) { copyTo.setCell(i, j, this.getCell(n, m)); } } n++; } // End for (height) m++; n = 0; } // End for (width) } /* * toString() reads the grid-array, and returns a String where "*" represents a live cell, * " " represents a dead cell and "\n" represents a new column. Copied from gameoflife2.Colony. */ public String toString() { String drawGrid = ""; // Create an empty string, which we later use to fill up with cell-values. for (int i = 0; i < getHeight(); i++) { for (int j = 0; j < getWidth(); j++) { if (getCell(i, j)) { drawGrid += "*"; // Found a Live cell, add "*" to the String. } else { drawGrid += " "; // Found a Dead cell, add " " to the String. } } drawGrid += "\n"; } return drawGrid; } /* * Returns the boolean value of the boolean Colony at grid[y][x] */ public boolean getCell(int y, int x) { if(y < getWidth() && y >= 0 && x < getWidth() && x >= 0) { return grid[y][x]; } return false; } /* * getHeight() returns the height of this.grid[][] */ public int getHeight() { return this.height; } /* * getWidth() returns the width of this.grid[][] */ public int getWidth() { return this.width; } public boolean isEmpty() { for (int i = 0; i < this.getWidth(); i++) { for (int j = 0; j < this.getHeight(); j++) { if (grid[i][j]) return false; } } return true; } public void setCell(int y, int x, boolean state) { if(y < getWidth() && y >= 0 && x < getHeight() && x >= 0) { grid[y][x] = state; } } }