tiko165 Posted November 18, 2019 at 04:50 PM Report Share #616645 Posted November 18, 2019 at 04:50 PM Boa tarde, Preciso da vossa ajuda, com este seguinte código (não feito por mim), para resolver uma matriz Sudoku e que utiliza a regra do BackTracking. Pretendo implementar uma regra de validação em diagonal (cima>baixo e baixo>cima) https://gist.github.com/bopbi/c9f94b1b981b84bcb02b Acrescentei as seguintes funções, e os seus parâmetros. Consegues perceber o porquê que desta forma não funciona. int verify_diagonal_down(int matrix[N][N], int num) { for (int row=0, col=0; row<N && col<N; row++, col++) { if(row==col && matrix[row][col] == num){ printf("ABC: [%d][%d],, %d == %d\n", row, col, matrix[row][col], num); return 1; } } return 0; } int verify_diagonal_up(int matrix[N][N], int row, int col, int num) { if(row + col == N - 1){ for (int x=N, y=0; x>=0 && y<N; x--, y++) { return 1; } return 0; } } int is_safe_num(int matrix[N][N], int row, int col, int num) { return !verify_box(matrix, row - (row % CUBE), col - (col % CUBE), num)//Valida Cubo && !verify_row(matrix, row, num)//Valida linha && !verify_col(matrix, col, num)//valida coluna && !verify_diagonal_down(matrix, num)//Valida diagonal LEFT > DOWN && !verify_diagonal_up(matrix, row, col, num)//Valida diagonal LEFT > UP ; } Obrigado Link to comment Share on other sites More sharing options...
PsySc0rpi0n Posted November 18, 2019 at 11:02 PM Report Share #616646 Posted November 18, 2019 at 11:02 PM Boas. Acho que terás que ser mais específico. Apenas apresentas um code e dizes que não funciona. Tens que dizer especificamente onde não funciona, o que esperavas que fizesse e o que está a fazer. Kurt Cobain - Grunge misses you Nissan GT-R - beast killer Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted February 14, 2020 at 06:40 AM Report Share #617335 Posted February 14, 2020 at 06:40 AM eu costumo fazer sudoku, e não me lembro de nenhuma regra que leve a olhar para as diagonais ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now