addClues method
void
addClues(
- int hintOffset
)
Implementation
void addClues(int hintOffset) {
if (initialState.equals(currentState)) {
if (hintOffset >= 0 && hintOffset <= 64) {
var random = Random();
var pos1;
var pos2;
var initialBoard = initialState.board;
var finalBoard = finalState.board;
for (var i = 0; i < hintOffset; i++) {
do {
pos1 = random.nextInt(boardSize);
pos2 = random.nextInt(boardSize);
} while (initialBoard[pos1][pos2] != 0);
initialBoard[pos1][pos2] = finalBoard[pos1][pos2];
}
initialState = SudokuState(initialBoard);
currentState = initialState;
} else {
throw ArgumentError('Hint offset not in inclusive range 0..64');
}
} else {
throw Exception(
'This method should only be used on an unplayed problem to increase the initial hints.');
}
}