Sudoku
Hola!
Os paso la parte más demandada. Espero que os resulte útil. El programa está pensado para un tablero formado por una matriz cuadrada variable desde 1x1 hasta 9x9.
Saludos
int reglas(int elem, int tab, int sub, int filsel, int colsel)
{
int f, c, filsub, colsub, subtot;
subtot=tab/sub; // Número de filas y columnas que hay en cada subtablero.
for (c=0;c<tab;c++) // Busqueda de coincidencia en la fila seleccionada.
{
if (matriz[filsel][c]==elem) // Mensaje de error.
{
printf(\"\\n\\n El elemento no se anhadira al tablero porque no cumple las reglas del juego.\\n\");
printf(\"\\n Ya existe el numero %d en esa fila.\\n\\n\\n \", elem);
system(\"PAUSE\");
return; // Vuelve a la línea de la llamada.
}
}
for (f=0;f<tab;f++) // Busqueda de coincidencia en la columna seleccionada.
{
if (matriz[f][colsel]==elem) // Mensaje de error.
{
printf(\"\\n\\n El elemento no se anhadira al tablero porque no cumple las reglas del juego.\\n\");
printf(\"\\n Ya existe el numero %d en esa columna.\\n\\n\\n \", elem);
system(\"PAUSE\");
return; // Vuelve a la línea de la llamada.
}
}
filsub=filsel/subtot; // Para saber en que subtablero estoy situado.
colsub=colsel/subtot;
for (f=filsub*subtot;f<filsub*subtot+subtot;f++)
{ // Desde la primera fila del subtablero hasta la última.
for (c=colsub*subtot;c<colsub*subtot+subtot;c++)
{ // Desde la primera columna del subtablero hasta la última.
if (matriz[f][c]==elem) // Mensaje de error.
{
printf(\"\\n\\n El elemento no se anhadira al tablero porque no cumple las reglas del juego.\\n\");
printf(\"\\n Ya existe el numero %d en ese subtablero.\\n\\n\\n \", elem);
system(\"PAUSE\");
return; // Vuelve a la línea de la llamada.
}
}
}
matriz[filsel][colsel]=elem; // Paso el elemento a la matriz si cumple las reglas.
}
Os paso la parte más demandada. Espero que os resulte útil. El programa está pensado para un tablero formado por una matriz cuadrada variable desde 1x1 hasta 9x9.
Saludos
int reglas(int elem, int tab, int sub, int filsel, int colsel)
{
int f, c, filsub, colsub, subtot;
subtot=tab/sub; // Número de filas y columnas que hay en cada subtablero.
for (c=0;c<tab;c++) // Busqueda de coincidencia en la fila seleccionada.
{
if (matriz[filsel][c]==elem) // Mensaje de error.
{
printf(\"\\n\\n El elemento no se anhadira al tablero porque no cumple las reglas del juego.\\n\");
printf(\"\\n Ya existe el numero %d en esa fila.\\n\\n\\n \", elem);
system(\"PAUSE\");
return; // Vuelve a la línea de la llamada.
}
}
for (f=0;f<tab;f++) // Busqueda de coincidencia en la columna seleccionada.
{
if (matriz[f][colsel]==elem) // Mensaje de error.
{
printf(\"\\n\\n El elemento no se anhadira al tablero porque no cumple las reglas del juego.\\n\");
printf(\"\\n Ya existe el numero %d en esa columna.\\n\\n\\n \", elem);
system(\"PAUSE\");
return; // Vuelve a la línea de la llamada.
}
}
filsub=filsel/subtot; // Para saber en que subtablero estoy situado.
colsub=colsel/subtot;
for (f=filsub*subtot;f<filsub*subtot+subtot;f++)
{ // Desde la primera fila del subtablero hasta la última.
for (c=colsub*subtot;c<colsub*subtot+subtot;c++)
{ // Desde la primera columna del subtablero hasta la última.
if (matriz[f][c]==elem) // Mensaje de error.
{
printf(\"\\n\\n El elemento no se anhadira al tablero porque no cumple las reglas del juego.\\n\");
printf(\"\\n Ya existe el numero %d en ese subtablero.\\n\\n\\n \", elem);
system(\"PAUSE\");
return; // Vuelve a la línea de la llamada.
}
}
}
matriz[filsel][colsel]=elem; // Paso el elemento a la matriz si cumple las reglas.
}
Sale un poco chungo. No sé q pasa con las comillas.
Quien lo necesite que me escriba y se lo paso por correo.
Saludos
Quien lo necesite que me escriba y se lo paso por correo.
Saludos
men pofa MANDAME EL CODIGO
Y POR CASULIDAD SBAES COMO HACER QUE EN EL BUSCAMINAS UNA CASILLA SE EXPANDA CON SUS VECINAS OSEA QUE ABRA MUCHAS MAS AL ABRIR ESTA
Y POR CASULIDAD SBAES COMO HACER QUE EN EL BUSCAMINAS UNA CASILLA SE EXPANDA CON SUS VECINAS OSEA QUE ABRA MUCHAS MAS AL ABRIR ESTA
