internal static void setProblem() { net = new Network(); // Set constraint variables v = new IntVariable[m][]; for (int i = 0; i < m; i++) { v[i] = new IntVariable[n]; } _vsum = new IntVariable[m][]; for (int i2 = 0; i2 < m; i2++) { _vsum[i2] = new IntVariable[n]; } _hsum = new IntVariable[m][]; for (int i3 = 0; i3 < m; i3++) { _hsum[i3] = new IntVariable[n]; } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { v[i][j] = null; if (puzzle[i][j].Equals("-")) { v[i][j] = new IntVariable(net, 0, 1); } _vsum[i][j] = null; _hsum[i][j] = null; } } // Set constraints for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (puzzle[i][j].Equals("-")) { IntVariable vsum_ = vsum(i, j); IntVariable hsum_ = hsum(i, j); vsum_.Add(hsum_).Subtract(v[i][j]).Ge(1); } else if (puzzle[i][j].Equals("^\\d$")) { int sum = Int32.Parse(puzzle[i][j]); IntVariable asum = adjacentSum(i, j); asum.Equals(sum); } } } }