@Override
	public void computeFitnesses() {

        for (int r = 0; r < N; r++) {
            for (int c = 0; c < N; c++) {
                List<GameCreature> pool = new ArrayList<GameCreature>();

                for (int i = r-1; i <= r+1; i++) {
                    for (int j = c-1; j <= c+1; j++) {
                        int iMod = (i < 0 ? i + N : i % N); //Deal with the fact that % op
                        int jMod = (j < 0 ? j + N : j % N); //returns negative values
                        assert (gridPop[iMod][jMod] != null) : "NULL entry in gridPop ("
                                                          + i + "," + j + ")"; 
                        if (i != 0 || j != 0) 
                            pool.add(gridPop[iMod][jMod]); 
                    }
                }
                /**Play games against each adjacent creature to compute fitness.*/
                gridPop[r][c].setOpponents(pool); 
                System.out.println("SpatialGamePop: Computing fitness of creature (" 
                        + r + ", " + c + ")"); 
                gridPop[r][c].computeFitness(); 
            }
        }
	}