src/societal_level/CellSociety.java
public List<Patch> neighbors(Cell c) {
		Neighbors neighbors = NeighborsChooser.chooseNeighbors(border, getMyShape(), getPatches());
		Patch patch = patches[c.getMyCol()][c.getMyRow()];
		if (getAllNeighbors)
			return neighbors.getAllNeighbors(patch);
		else
			return neighbors.getCardinalNeighbors(patch);
	}
/**
	 * Each CellSociety defines a certain way to identify neighbors, depending
	 * on how that society works. The generalized options are: 1) Normal
	 * neighbors (8 nearby cells, no board crossing) 2) Cardinal neighbors (N S
	 * W E cells) 3) Wrapped neighbors (8 nearby cells, board crossing)
	 * Descendant classes can combine these when they define neighbors or come
	 * up with a new way to choose neighbors
	 * 
	 * @param c
	 *            Cell whose neighbors are returned
	 * @return neighbors of Cell c, either all neighbors or cardinal neighbors
	 */
Each CellSociety defines a certain way to identify neighbors, depending
on how that society works. The generalized options are: 1) Normal
neighbors (8 nearby cells, no board crossing) 2) Cardinal neighbors (N S
W E cells) 3) Wrapped neighbors (8 nearby cells, board crossing)
Descendant classes can combine these when they define neighbors or come
up with a new way to choose neighbors

@param c
Cell whose neighbors are returned
@return neighbors of Cell c, either all neighbors or cardinal neighbors
Each CellSociety defines a certain way to identify neighbors depending on how that society works . The generalized options are : 1 ) Normal neighbors ( 8 nearby cells no board crossing ) 2 ) Cardinal neighbors ( N S W E cells ) 3 ) Wrapped neighbors ( 8 nearby cells board crossing ) Descendant classes can combine these when they define neighbors or come up with a new way to choose neighbors @param c Cell whose neighbors are returned @return neighbors of Cell c either all neighbors or cardinal neighbors
public List<Patch> neighbors(Cell c) {
		Neighbors neighbors = NeighborsChooser.chooseNeighbors(border, getMyShape(), getPatches());
		Patch patch = patches[c.getMyCol()][c.getMyRow()];
		if (getAllNeighbors)
			return neighbors.getAllNeighbors(patch);
		else
			return neighbors.getCardinalNeighbors(patch);
	}
public List < Patch > neighbors ( Cell c ) { Neighbors neighbors = NeighborsChooser . chooseNeighbors ( border , getMyShape ( ) , getPatches ( ) ) ; Patch patch = patches [ c . getMyCol ( ) ] [ c . getMyRow ( ) ] ; if ( getAllNeighbors ) return neighbors . getAllNeighbors ( patch ) ; else return neighbors . getCardinalNeighbors ( patch ) ; }
Each CellSociety defines a certain way to identify neighbors, depending
 on how that society works.
Each CellSociety defines a certain way to identify neighbors depending on how that society works .