Tema: Matrices
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/06/2012, 13:16
Feldner
 
Fecha de Ingreso: abril-2012
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Matrices

Saludos cesar_casla muchas gracias aqui mi codigo, le dividi en dos pq era muy grande
Código C:
Ver original
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include <time.h>
  4.  
  5. #define ALTO 9
  6. #define ANCHO 9
  7.  
  8.  
  9. int fila,columna,numero;
  10. int sudokuceros[ALTO][ANCHO]={
  11.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  12.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  13.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  14.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  15.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  16.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  17.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  18.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  19.              {0, 0, 0, 0, 0, 0, 0, 0, 0},
  20.              };
  21.  
  22. int sudokus1[ALTO][ANCHO]={
  23.              {0, 2, 0, 0, 0, 0, 0, 0, 0},
  24.              {0, 0, 0, 6, 0, 0, 0, 0, 3},
  25.              {0, 7, 4, 0, 8, 0, 0, 0, 0},
  26.              {0, 0, 0, 0, 0, 3, 0, 0, 2},
  27.              {0, 8, 0, 0, 4, 0, 0, 1, 0},
  28.              {6, 0, 0, 5, 0, 0, 0, 0, 0},
  29.              {0, 0, 0, 0, 1, 0, 7, 8, 0},
  30.              {5, 0, 0, 0, 0, 9, 0, 0, 0},
  31.              {0, 0, 0, 0, 0, 0, 0, 4, 0},
  32.              };
  33.  
  34. int matriz[ALTO][ANCHO];
  35. void cargarsudokus(int matriz[ALTO][ANCHO]);
  36. void submenu1 (int opcion1);
  37. void metenumeros(int matriz[ALTO][ANCHO]);
  38. void DaValoresMatriz(int matriz[ALTO][ANCHO]);
  39. void imprimirmatriz(int matriz[ALTO][ANCHO]);
  40. void jugar_sudoku(int num1,int num2);
  41.  
  42. void escribir(int matriz[ALTO][ANCHO],int fila, int columna, int numero);
  43. void dibujar_tablero(int matriz[ALTO][ANCHO]);
  44. void juego(int matriz[ALTO][ANCHO]);
  45. int finalizar(int matriz[ALTO][ANCHO]);
  46. int intenta_poner(int matriz[ALTO][ANCHO],int i,int j,int k);
  47. int coordenadavalida(int linea, int columna);
  48. int comprobar(int matriz[ALTO][ANCHO], int fila, int columna, int numero);
  49. int numerovalido(int numero);
  50.  
  51. void practicar_sudoku(int matriz[ALTO][ANCHO]);
  52.  
  53. void metenumeros_();
  54. void juego_();
  55.  
  56. void llamararchivo ();
  57.  
  58. /* Declaracion de la función main */
  59. int main () {
  60.  
  61.      /* Declaración de variables */
  62.      srand(time(NULL));
  63.      //int matriz[ALTO][ANCHO];
  64.      int opcion = -1;
  65.      int variable = 0;
  66.      int opcion1 = -1;
  67.  
  68.      /* Declaracion del While */
  69.      while((opcion!=0)&&(variable<4))     /*la sentencia se ejecutara mientras la condición sea cierta
  70.                                           o sea mientras la variable no sea mayor que 10 se mantiene el bucler */
  71.      {          
  72.          printf ("                          ***********************************\n");
  73.          printf ("                          *                                 *\n");
  74.          printf ("                          *              SUDOKU             *\n");
  75.          printf ("                          *                                 *\n");
  76.          printf ("                          ***********************************\n");
  77.                  
  78.                  /*Menu del Sudoku*/
  79.          printf("                          Introduzca una operacion a realizar: \n");
  80.          printf("                                1) Crear Sudoku \n");
  81.          printf("                                2) Practicar Sudoku \n");
  82.          printf("                                3) Guardar Sudoku \n");
  83.          printf("                          ===================================== \n");
  84.          printf("                                Pulse 0 para salir \n");
  85.          scanf("%d", &opcion);  
  86.        
  87.          if(opcion==1)
  88.          {
  89.          submenu1 (opcion1);
  90.          }
  91.          else if (opcion==2)
  92.          {
  93.          practicar_sudoku(matriz);
  94.          }
  95.          else if(opcion==3)
  96.          {
  97.          
  98.          }
  99.          else if (opcion == 0)
  100.          {
  101.          printf ("\nSeleccion salida\n");
  102.          }
  103.          else
  104.          {
  105.          printf("\nLa opcion es incorrecta\n");
  106.          }
  107.      } variable ++; /* Fin funcion While, se incrementa en uno el valor de la variable --> variable = variable + 1 */
  108.      return 0;
  109.  }/*Fin funcion Main */
  110.    
  111.      
  112.  void submenu1 (int opcion1)   
  113.      {   
  114.          int matriz[ALTO][ANCHO];
  115.          int opsudokus;
  116.          while(opcion1!=0)
  117.          {
  118.  
  119.          printf ("\n                        ***********************************\n");
  120.          printf ("\n                        *           CREAR SUDOKU          *\n");
  121.          printf ("\n                        ***********************************\n");
  122.          printf("\n                         Elija opciones para crear sudoku   \n");
  123.          printf("\n                         1) Cargar Sudoku\n");
  124.          printf("\n                         2) Cargar Sudoku desde fichero\n");
  125.          printf("\n                         3) Crear Sudoku\n");
  126.          printf("\n                         =====================================\n");
  127.          printf("\n                         Pulse 0 para volver al menu principal \n");
  128.          scanf("%d", &opcion1);
  129.            
  130.             if(opcion1==1)
  131.              {
  132.              cargarsudokus(matriz);
  133.              }
  134.              else if(opcion1==2)
  135.              {
  136.              llamararchivo ();
  137.              }
  138.              
  139.              else if(opcion1==3)
  140.              {
  141.              int op = -1;  
  142.              while(finalizar(sudokuceros)!=0){
  143.              dibujar_tablero(sudokuceros);
  144.              metenumeros(sudokuceros);
  145.              printf("Desea seguir introduciendo valores al sudoku? (1)Si (2) No: ");
  146.                                          scanf("%d", &op);
  147.                                          if(op==1)
  148.                                          {
  149.                                          printf("Guardando...\n");
  150.                                          }
  151.                                          else
  152.                                          {
  153.                                          printf("Validando su sudoku:OK\n");
  154.                                          printf("-->>Regresando al menu<<--\n");
  155.                                          main();
  156.                                          }           
  157.              finalizar(sudokuceros);
  158.                          
  159.                   }              
  160.                
  161.              }    
  162.              else
  163.              {
  164.              printf("\nOpcion salida de la opcion crear sudoku\n");
  165.              }
  166.         }
  167.     }