Renamed variables

This commit is contained in:
iaforek 2018-02-13 09:02:23 +00:00
parent 18abcba219
commit 4760816cfb

View File

@ -40,15 +40,15 @@ public class BacktrackingAlgorithm {
} }
private boolean solve(int[][] board) { private boolean solve(int[][] board) {
for (int r = BOARD_START_INDEX; r < BOARD_SIZE; r++) { for (int row = BOARD_START_INDEX; row < BOARD_SIZE; row++) {
for (int c = BOARD_START_INDEX; c < BOARD_SIZE; c++) { for (int column = BOARD_START_INDEX; column < BOARD_SIZE; column++) {
if (board[r][c] == NO_VALUE) { if (board[row][column] == NO_VALUE) {
for (int k = MIN_VALUE; k <= MAX_VALUE; k++) { for (int k = MIN_VALUE; k <= MAX_VALUE; k++) {
board[r][c] = k; board[row][column] = k;
if (isValid(board, r, c) && solve(board)) { if (isValid(board, row, column) && solve(board)) {
return true; return true;
} }
board[r][c] = NO_VALUE; board[row][column] = NO_VALUE;
} }
return false; return false;
} }
@ -57,44 +57,44 @@ public class BacktrackingAlgorithm {
return true; return true;
} }
private boolean isValid(int[][] board, int r, int c) { private boolean isValid(int[][] board, int row, int column) {
return rowConstraint(board, r) && return rowConstraint(board, row) &&
columnConstraint(board, c) && columnConstraint(board, column) &&
subsectionConstraint(board, r, c); subsectionConstraint(board, row, column);
} }
private boolean subsectionConstraint(int[][] board, int r, int c) { private boolean subsectionConstraint(int[][] board, int row, int column) {
boolean[] constraint = new boolean[BOARD_SIZE]; boolean[] constraint = new boolean[BOARD_SIZE];
int subsectionRowStart = (r / SUBSECTION_SIZE) * SUBSECTION_SIZE; int subsectionRowStart = (row / SUBSECTION_SIZE) * SUBSECTION_SIZE;
int subsectionRowEnd = subsectionRowStart + SUBSECTION_SIZE; int subsectionRowEnd = subsectionRowStart + SUBSECTION_SIZE;
int subsectionColumnStart = (c / SUBSECTION_SIZE) * SUBSECTION_SIZE; int subsectionColumnStart = (column / SUBSECTION_SIZE) * SUBSECTION_SIZE;
int subsectionColumnEnd = subsectionColumnStart + SUBSECTION_SIZE; int subsectionColumnEnd = subsectionColumnStart + SUBSECTION_SIZE;
for (int i = subsectionRowStart; i < subsectionRowEnd; i++) { for (int r = subsectionRowStart; r < subsectionRowEnd; r++) {
for (int j = subsectionColumnStart; j < subsectionColumnEnd; j++) { for (int c = subsectionColumnStart; c < subsectionColumnEnd; c++) {
if (!checkConstraint(board, i, constraint, j)) return false; if (!checkConstraint(board, r, constraint, c)) return false;
} }
} }
return true; return true;
} }
private boolean columnConstraint(int[][] board, int c) { private boolean columnConstraint(int[][] board, int column) {
boolean[] constraint = new boolean[BOARD_SIZE]; boolean[] constraint = new boolean[BOARD_SIZE];
return IntStream.range(BOARD_START_INDEX, BOARD_SIZE) return IntStream.range(BOARD_START_INDEX, BOARD_SIZE)
.allMatch(i -> checkConstraint(board, i, constraint, c)); .allMatch(row -> checkConstraint(board, row, constraint, column));
} }
private boolean rowConstraint(int[][] board, int r) { private boolean rowConstraint(int[][] board, int row) {
boolean[] constraint = new boolean[BOARD_SIZE]; boolean[] constraint = new boolean[BOARD_SIZE];
return IntStream.range(BOARD_START_INDEX, BOARD_SIZE) return IntStream.range(BOARD_START_INDEX, BOARD_SIZE)
.allMatch(i -> checkConstraint(board, r, constraint, i)); .allMatch(column -> checkConstraint(board, row, constraint, column));
} }
private boolean checkConstraint(int[][] board, int r, boolean[] constraint, int c) { private boolean checkConstraint(int[][] board, int row, boolean[] constraint, int column) {
if (board[r][c] != NO_VALUE) { if (board[row][column] != NO_VALUE) {
if (!constraint[board[r][c] - 1]) { if (!constraint[board[row][column] - 1]) {
constraint[board[r][c] - 1] = true; constraint[board[row][column] - 1] = true;
} else { } else {
return false; return false;
} }