Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int play_sudoku_bruteforce(int matrix[][N],int lines,int columns) {
- if ((lines == N - 1 && columns == N - 1)) {
- printf("\t SUDOKU COMPLETADO ! \n");
- print_matrix(matrix, lines);
- return 0;
- }
- if (checkConsistency(matrix, lines, columns)) { // ESTÁ DENTRO DA MATRIZ E ESTA A 0
- for (int i = 1; i <= N; i++) {
- if (!checkSecDiagonal(matrix, i) && !checkSquare(matrix, lines, columns, i) &&
- !checkLine(matrix, lines, i) && !checkColumn(matrix, columns, i) &&
- !checkMainDiagonal(matrix, i)) // VERIFICAR SE ESTA NA DIAGONAL PRINCIPAL E SECUNDARIA
- {
- matrix[lines][columns] = i;
- return play_sudoku_bruteforce(matrix, lines, columns + 1);
- } else if (!checkLine(matrix, lines, i) && !checkMainDiagonal(matrix, i) &&
- !checkColumn(matrix, columns, i) && !checkSquare(matrix, lines, columns, i) &&
- (lines == columns)) { // VERIFICA SE TEM NA DIAGONAL PRINCIPAL
- matrix[lines][columns] = i;
- if (columns == N - 1) {
- return play_sudoku_bruteforce(matrix, N - 1, N - 1);
- } else return play_sudoku_bruteforce(matrix, lines, columns + 1);
- } else if (!checkLine(matrix, lines, i) && !checkSecDiagonal(matrix, i) &&
- !checkColumn(matrix, columns, i) && !checkSquare(matrix, lines, columns, i) &&
- (lines + columns == N - 1)) { //VERIFICA SE TEM NA DIAGONAL SECUNDARIA
- matrix[lines][columns] = i;
- if (columns == N - 1) {
- return play_sudoku_bruteforce(matrix, lines + 1, 0);
- } else return play_sudoku_bruteforce(matrix, lines, columns + 1);
- } else if (!checkLine(matrix, lines, i) && !checkColumn(matrix, columns, i) &&
- !checkSquare(matrix, lines, columns, i)) {
- matrix[lines][columns] = i;
- if (columns == N - 1) {
- return play_sudoku_bruteforce(matrix, lines + 1, 0);
- } else return play_sudoku_bruteforce(matrix, lines, columns + 1);
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement