Recorrer sudoku

Iniciado por jadelabe, 18 Junio 2012, 16:02 PM

0 Miembros y 1 Visitante están viendo este tema.

jadelabe

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;
}

STANHMAL

¿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
Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red

jadelabe

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