Jump to content
tiko165

Sudoku na Diagonal em C

Recommended Posts

tiko165

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


collectioneuro300px.png

Share this post


Link to post
Share on other sites
PsySc0rpi0n

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

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.