public static Iterator<Position> get8NeighborhoodIterator(Position center) {
    ArrayList<Position> list = new ArrayList<Position>();
    int row = center.getRow(); int col = center.getColumn();
    int r,c;
    for (int dr = -1; dr <= +1; dr++) {
      for (int dc = -1; dc <= +1; dc++) {
        r = row+dr; c = col+dc;
        // avoid positions outside the world
        if ( r >= 0 && r < GameConstants.WORLDSIZE &&
             c >= 0 && c < GameConstants.WORLDSIZE ) {
          // avoid center position
          if ( r != row || c != col ){
            list.add( new Position(r,c));
          }
        }
      }
    }
    return list.iterator();
  }