@Override
	protected List<CharPoint> getNeighbors(CharPoint field) {
		List<CharPoint> neighbors = new ArrayList<CharPoint>(this.neighbors.length);
		int x = field.getX();
		int y = field.getY();
		for (int xx = x - 1; xx <= x + 1; xx++) {
			for (int yy = y - 1; yy <= y + 1; yy++) {
				if (xx == x && yy == y)
					continue;
				if (xx < 0 || yy < 0)
					continue;
				if (xx >= width || yy >= height)
					continue;
				neighbors.add(this.points[xx][yy]);
			}
		}
		
		return neighbors;
	}