public void newConstraintFromPoint(Point origin, int value) {
		List<Point> points = new ArrayList<Point>();
		knownPoints[origin.x][origin.y] = value; 
		//add every point around the point to the constraint if it is unknown
		int i, n; 
		for (i = -1; i < 2; i++) {
			for (n = -1; n < 2; n++) {
				//if we are at the origin we obviously do nothing
				if (i != 0 && n != 0) {
					try { 
						if (knownPoints[origin.x + i][origin.y + n] == -1) { 
							points.add(new Point(origin.x+i, origin.y+n)); 
						} 
					}
					catch (ArrayIndexOutOfBoundsException e) {
						//Do nothing. This is required if we are inspecting the area around a border point
					} 	
				}
			}
		}
		
		if (points.size() > 0) {
			constraints.add(new Constraint(points, value));
		}
		
		simplifyConstraints(); 
	}