import java.util.*;

public class XNeighborhood implements NeighborhoodConstructor {
    int length;

    public XNeighborhood(int length) {
	this.length = length;
    }

    public LinkedList getNeighborhood(int i,
			       int j,
			       int width,
			       int height,
			       Agent[][] world,
			       boolean wrap) {
	LinkedList nbhd = new LinkedList();
	int offset;
	for (offset=1; offset<=length; offset++) {
	    nbhd.add( world[ (i+offset+width) % width ][ (j+offset+height) % height] );
	    nbhd.add( world[ (i+offset+width) % width ][ (j-offset+height) % height] );
	    nbhd.add( world[ (i-offset+width) % width ][ (j+offset+height) % height] );
	    nbhd.add( world[ (i-offset+width) % width ][ (j-offset+height) % height] );		
	}
	return nbhd;
    }
}

