Código C:
Ver originalvoid cargarsudokus(int matriz[ALTO][ANCHO])
{
int i;
int e;
int sudokus = -1;
printf("\n Elija entre los 5 sudokus, pulsando del 1 al 5: ");
if(sudokus == 1)
{
dibujar_tablero(sudokus1);
}
else if(sudokus == 2)
{
dibujar_tablero(sudokus2);
}
else if(sudokus == 3)
{
dibujar_tablero(sudokus3);
}
else if(sudokus == 4)
{
dibujar_tablero(sudokus4);
}
else if(sudokus == 5)
{
dibujar_tablero(sudokus5);
}
else
{
}
}
void practicar_sudoku(int matriz[ALTO][ANCHO])
{
int op = -1;
while(finalizar(matriz)!=0){
dibujar_tablero(matriz);
metenumeros(matriz);
printf("Desea seguir introduciendo valores al sudoku? (1)Si (2) No: "); if(op==1)
{
}
else
{
printf("Validando su sudoku:OK\n"); printf("-->>Regresando al menu<<--\n"); main();
}
finalizar(matriz);
}
}
void llamararchivo ()
{
FILE * Sudoku;
char palabras[100];
Sudoku
= fopen("Sudoku.txt","r");
{
fgets(palabras
,100,Sudoku
); }
return 0;
}
void DaValoresMatriz(int matriz[ALTO][ANCHO])
{
int fila, columna, numero;
int i;
int e;
for(i=0;i<ALTO;i++)
{
for (e=0; e<ANCHO; e++)
{
matriz
[i
][e
]= (rand() % 9) + 1; }
}
}
int coordenadavalida(int fila, int columna)
{
if(fila>=0 && fila <9 && columna>=0 && columna <9)
return 1;
else
return 0;
}
int intenta_poner(int matriz[ALTO][ANCHO],int i,int j,int k) {
int c,l;
for (l = 0; l < 9; l++)
if (matriz[l][j] == k)
return 0;
for (c = 0; c < 9; c++)
if (matriz[i][c] == k)
return 0;
for (l = i - i % 3; l < i - i % 3 +3; l++)
for (c = j - j % 3; c < j - j % 3 + 3; c++)
if (matriz[l][c] == k)
return 0;
matriz[i][j] = k;
dibujar_tablero(matriz);
return 1;
}
int finalizar(int matriz[ALTO][ANCHO])
{
int i,j;
for (i=0;i<9;i++)
for (j=0;j<9;j++)
if (matriz[i][j]==0)
return 1;
}
void escribir(int matriz[ALTO][ANCHO],int fila, int columna, int numero) {
matriz[fila][columna]=numero;
}
int numerovalido(int numero)
{
if(numero>0 && numero <=9)
return 1;
else
return 0;
}
int comprobar(int matriz[ALTO][ANCHO], int fila, int columna, int numero) {
if (matriz[fila][columna]==0)
return 1;
else
return 0;
}
void metenumeros(int matriz[ALTO][ANCHO])
{
printf("Introduzca la fila: \n"); if ((fila < 1) || (fila > 9)) // si el valor de la fila es menor que 1 "||"(or) es mayor que 9, (no se usa && (and))
{
printf("Valor invalido para la fila,ingrese un numero entre 1 y 9: \n"); }
printf("\nIntroduzca la columna: \n"); if((columna < 1) || (columna > 9))
{
printf("Valor invalido para la columna, ingrese un numero entre 1 y 9: \n"); }
printf("Introduzca el numero a insertar: "); if((numero < 1) || (numero > 9))
{
printf("Numero no valido, ingrese un numero entre 1 y 9\n"); }
juego(matriz);
}
void juego(int matriz[ALTO][ANCHO])
{
int op =-1;
if (coordenadavalida(fila-1, columna-1)==1)
{
printf("Coordenada Valida\n"); if (numerovalido(numero)==1)
{
if (comprobar(matriz, fila-1, columna-1, numero)==1)
{
if (intenta_poner(matriz, fila-1, columna-1, numero)==1)
{
escribir(matriz,fila-1,columna-1,numero);
}
else
{
printf("No fue posible introducir detrminado numero, ya existe en la fila o en la columna o en el mismo cuadrante\n"); }
}
else
{
printf("Pero esta posicion ya esta ocupada\n"); }
}
else
{
}
}
else
{
printf("Coordenada invalida\n"); }
}
void dibujar_tablero(int matriz[ALTO][ANCHO]) {
int i,j;
printf(" 1 2 3 4 5 6 7 8 9 \n"); printf("+---------+---------+---------+\n"); for (i = 0; i < 9; i++) {
for (j = 0; j < 9; j++) {
if (matriz[i][j] != 0)
else
if (j % 3 == 2)
}
if (i % 3 == 2)
printf("\n+---------+---------+---------+"); }