Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: jadelabe en 18 Junio 2012, 16:02 PM

Título: Recorrer sudoku
Publicado por: jadelabe en 18 Junio 2012, 16:02 PM
Tengo un problema con la siguiente funcion, necesito que me recorra filas y columnas de una matriz sudoku y compare a ver si alguno de sus valores se repite, pero no lo hace correctamente, parece que solo me compara las q el quiere, ayuda por favor


int check(int sudoku[ALTO][ANCHO], int fila, int columna, int valor){

        int e, error=0;


                for (e=0; e<ANCHO; e++){

                        if (sudoku[fila][e]==valor){

                                error = 1;
                        }

                }

                for (e=0; e<ALTO; e++){

                        if (sudoku[e][columna]==valor){

                                error = 1;

                        }

                }
return error;
}
Título: Re: Recorrer sudoku
Publicado por: STANHMAL en 18 Junio 2012, 18:42 PM
¿Tienes inicializados todos los valores del sudoku?, es decir, los espacios en blanco tienen algún valor, si no es así colócalos en 0 o -1, o que se yo, porque de lo contrario tendrán "Basura" y generara problemas al momento de comparar.

$4!u2
Título: Re: Recorrer sudoku
Publicado por: jadelabe en 18 Junio 2012, 20:24 PM
Ye lo he solucionado, el problema estaba en que en la funcion en la que introducia los valores de fila y columna, los pedia entre 1 y 9, los metia entre 1 y 9 y en esta funcion solo comparaba entre 0 y 8
depure un poco el codigo y al final me quedo así ^^
int checkFila(int sudoku[ALTO][ANCHO], int fila, int valor){

int e;


for (e=0; e<ANCHO; ++e){

if (sudoku[fila-1][e] == valor){

return 1;
}

}
return 0;
}

int checkColumna(int sudoku[ALTO][ANCHO], int columna, int valor){

int e;


for (e=0; e<ALTO; ++e){

if (sudoku[e][columna-1] == valor){

return 1;
}

}
return 0;
}


Gracias