Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Model;
import org.chocosolver.solver.variables.IntVar;
@Override
public IntVar getVar() {
return var;
}
@Override
public String toString(boolean isSolve) {
if ( isSolve) {
return "" + var.getValue();
}
else {
return " ";
}
}
}
class NumberBox implements Box{
@Override
public IntVar getVar() {
return var;
}
@Override
public String toString(boolean isSolve) {
return "" + num;
}
interface Box {
public IntVar getVar();
isSolve = model.getSolver().solve();
if ( isSolve) {
show();
}
else {
System.out.println("No solution found");
}
}
return res;
}
return res;
}
/**
* ----
* |123|
* |456|
* |789|
* -----
*
*/
private IntVar[] getInnerGridVars(int idx) {
IntVar[] res = new IntVar[SIZE];
int idxRes = 0;
for ( int idxRow = 0; idxRow < 3; idxRow++ ) {
for ( int idxCol = 0; idxCol < 3; idxCol++ ) {
res[idxRes++] = grid[idxRow + toAddRow][idxCol +
toAddCol].getVar();
return res;
}
if ( '*' != val ) {
grid[rowIdx][colIdx] = new NumberBox(val, rowIdx,
colIdx, model);
}
else {
grid[rowIdx][colIdx] = new VarBox(rowIdx, colIdx,
model);
}
colIdx ++;
}
rowIdx ++;
}
}
int rowIdx = 0;
for (Box[] row : grid) {
if ( rowIdx % 3 == 0 ) {
System.out.println("-------------");
}
int colIdx = 0;
for( Box box : row) {
if ( colIdx % 3 == 0 ) {
System.out.print("|");
}
System.out.print(box.toString(isSolve));
colIdx ++;
}
System.out.print("|" + System.lineSeparator());
rowIdx ++;
}
System.out.println("-------------");