mandame el codigo fuente
Publicado por luis carlos (1 intervención) el 20/04/2006 23:28:09
necesito el codigo fuente del sudoku en c por favor alguien q lo tenga me haria un grandisimo favor.
gracias
gracias
Valora esta pregunta


0
#include <stdio.h>
// Función para imprimir el tablero de Sudoku
void imprimirSudoku(int sudoku[9][9]) {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
printf("%d ", sudoku[j]);
}
printf("\n");
}
}
// Función para verificar si un número se puede colocar en una posición específica del tablero
int esNumeroValido(int sudoku[9][9], int fila, int columna, int numero) {
// Verificar la fila y columna
for (int i = 0; i < 9; i++) {
if (sudoku[fila][i] == numero || sudoku[i][columna] == numero) {
return 0; // No es válido
}
}
// Verificar el cuadrante 3x3
int inicioFila = (fila / 3) * 3;
int inicioColumna = (columna / 3) * 3;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (sudoku[inicioFila + i][inicioColumna + j] == numero) {
return 0; // No es válido
}
}
}
return 1; // Es válido
}
// Función recursiva para resolver el Sudoku
int resolverSudoku(int sudoku[9][9]) {
for (int fila = 0; fila < 9; fila++) {
for (int columna = 0; columna < 9; columna++) {
if (sudoku[fila][columna] == 0) {
for (int numero = 1; numero <= 9; numero++) {
if (esNumeroValido(sudoku, fila, columna, numero)) {
sudoku[fila][columna] = numero;
if (resolverSudoku(sudoku)) {
return 1; // Sudoku resuelto
}
sudoku[fila][columna] = 0; // Retroceder si la solución no es válida
}
}
return 0; // No hay solución para la posición actual
}
}
}
return 1; // Sudoku resuelto
}
int main() {
int sudoku[9][9] = {
{5, 3, 0, 0, 7, 0, 0, 0, 0},
{6, 0, 0, 1, 9, 5, 0, 0, 0},
{0, 9, 8, 0, 0, 0, 0, 6, 0},
{8, 0, 0, 0, 6, 0, 0, 0, 3},
{4, 0, 0, 8, 0, 3, 0, 0, 1},
{7, 0, 0, 0, 2, 0, 0, 0, 6},
{0, 6, 0, 0, 0, 0, 2, 8, 0},
{0, 0, 0, 4, 1, 9, 0, 0, 5},
{0, 0, 0, 0, 8, 0, 0, 7, 9}
};
printf("Sudoku original:\n");
imprimirSudoku(sudoku);
printf("\n");
if (resolverSudoku(sudoku)) {
printf("Sudoku resuelto:\n");
imprimirSudoku(sudoku);
} else {
printf("No hay solución para el Sudoku proporcionado.\n");
}
return 0;
}