SHARE
TWEET

Untitled

a guest Jun 19th, 2019 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>     //Para numeros aleatorios//
  3. #include <time.h>       //Para que el numero aleatorio no vaya al contador de seg//
  4. #define FILAS 17        //FILAS siempre ser谩 17//
  5. #define COLUMNAS 17     //COLUMNAS siempre ser谩 17//
  6.    
  7.     int menu(void); //No recibe nada//
  8.     void jugar_ordenador(int tablero_partida); //No devuelve nada//
  9.     int jugar_contra_otro(void); //No recibe nada//
  10.     void inicializar_tablero(int tablero[FILAS][COLUMNAS]);  //No devuelve nada//
  11.     int selecciona_casilla(int tablero[FILAS][COLUMNAS], int fila, int columna);
  12.     void imprimir_tablero(int tablero[FILAS][COLUMNAS]);  //No devulve nada//
  13.     int selecciona_casilla_adyacente(int tablero[FILAS][COLUMNAS], int fila, int columna, int serpiente);
  14.     void cargar_tablero_partida(int tablero[FILAS][COLUMNAS]);
  15. void guardar_tablero_fichero(int tablero[FILAS][COLUMNAS], char nombre_fichero[25]);
  16.  
  17.     FILE *fichero_salida;   //Fichero para guardar el programa//
  18.     FILE *fichero_entrada;
  19.  
  20. int main(int argc, char* argv[]) {    //El numero de argumentos ser铆a dos; snake y el fichero//
  21.     /**
  22.     * Comprobacion de parametros iniciales
  23.     * El numero de parametros puede ser 2 o 3 en funcion de si existe fichero de entrada
  24.     **/
  25.     int tablero_partida;
  26.     if(argc != 2 && argc != 3 ){    // Si el numero de argumentos no es ni 2 ni 3 se lanza un mensaje de error y se detiene el juego
  27.         printf("Error en el n煤mero de argumentos (%d)\n", argc-1);
  28.         return -1;  
  29.     }
  30.     else{
  31.         fichero_salida = fopen(argv[1],"w");    // Se intenta abrir el fichero de escritura
  32.         if(fichero_salida==NULL){
  33.             /* Si no se puede abrir el fichero se lanza un mensaje de error y se detiene el juego */
  34.             printf("Error: No se pudo abrir el archivo de escritura\n");
  35.             return -2;
  36.         }
  37.         /* Dependiendo si los argumentos eran 2 o 3 se establece la variable tablero_partida */
  38.         if(argc == 2){
  39.             tablero_partida = 0;
  40.         }
  41.         else{
  42.             fichero_entrada = fopen(argv[2],"r");
  43.             if( fichero_entrada == NULL ){
  44.                 printf("Error: No se pudo abrir el fichero de entrada\n");
  45.                 return -3;
  46.             }
  47.             tablero_partida = 1;
  48.         }
  49.     }
  50.  
  51.     int opcion;
  52.     int ganador;
  53.     do{
  54.         opcion = menu();  
  55.         switch(opcion){
  56.             /* Llama a la funcion de jugar solo */
  57.             case 1:
  58.                 printf("La elecci贸n del usuario ha sido jugar contra el ordenador\n");
  59.                 fprintf(fichero_salida, "La elecci贸n del usuario ha sido jugar contra el ordenador\n");
  60.                 //Empieza el juego contra el ordenador//
  61.                 jugar_ordenador(tablero_partida);                  
  62.             break;
  63.             /* Llama a la funcion de jugar contra otro e imprime el ganador */
  64.             case 2:
  65.                 printf("La elecci贸n del usuario ha sido jugar contra otro usuario\n");
  66.                 fprintf(fichero_salida, "La elecci贸n del usuario ha sido jugar contra otro usuario\n");
  67.                 ganador = jugar_contra_otro(); 
  68.                 if(ganador==1){
  69.                     printf("Gan贸 el jugador 2\n");
  70.                     fprintf(fichero_salida, "Gan贸 el jugador 2\n");
  71.                 }
  72.                 else{
  73.                     printf("Gan贸 el jugador 1\n");
  74.                     fprintf(fichero_salida, "Gan贸 el jugador 1\n");
  75.                 }
  76.             break;
  77.             /* Finaliza el programa */
  78.             case 3:
  79.                 printf("El programa ha finalizado");
  80.                 fprintf(fichero_salida, "El programa ha finalizado");
  81.             break;                                     
  82.         }
  83.         printf("\n");
  84.         fprintf(fichero_salida, "\n");
  85.     }while(opcion != 3);
  86.  
  87.     /* Antes de salir del juego se cierra el fichero */
  88.     fclose(fichero_salida);
  89.     return 0;  
  90. }
  91.  
  92. int menu(void) {                                //Hacemos la funci贸n menu//
  93.     int opcion;
  94.     do{
  95.         printf ("Elige una opcion:\n");
  96.         fprintf(fichero_salida, "Elige una opcion:\n");  
  97.         printf("1) Juego contra el ordenador.\n");
  98.         fprintf(fichero_salida, "1) Juego contra el ordenador.\n");
  99.         printf("2) Jugar contra otro usuario.\n");
  100.         fprintf(fichero_salida, "2) Jugar contra otro usuario.\n");
  101.         printf("3) Salir del programa.\n");
  102.         fprintf(fichero_salida, "3) Salir del programa.\n");  
  103.         scanf("%d", &opcion);
  104.         if( (opcion !=1 ) && (opcion != 2) && (opcion != 3)){
  105.             printf ("ERROR: No se ha elegido ninguna de las 3 opciones, vuelva a intentarlo\n");
  106.             fprintf(fichero_salida, "ERROR: No se ha elegido ninguna de las 3 opciones, vuelva a intentarlo\n");
  107.         }
  108.     }while (opcion!=1 && opcion!=2 && opcion!=3);
  109. }
  110.  
  111. void inicializar_tablero(int tablero[FILAS][COLUMNAS]){  //Se hace la funci贸n incializar_tablero//
  112.     /* Se inicializa el tablero, colocando -1's en los bordes laterales y -2's en los bordes superior e inferior */
  113.     for (int i = 0; i < FILAS; i++){
  114.         for (int j = 0; j < COLUMNAS; j++){
  115.             if ( (i==0) || (i==16) ) { 
  116.                     tablero[i][j] = -2;
  117.             }
  118.             else{
  119.                 if ( (j==0) || (j==16) ){   //En el borde de las filas pone un 1 (fila 1 y 17)//
  120.                         tablero[i][j] = -1;
  121.                 }
  122.                 else{                       //En todo el tablero restante pone un 0// 酶
  123.                         tablero[i][j] = 0;
  124.                 }
  125.             }
  126.         }
  127.     }
  128.     /* Se colocan en el tablero la serpiente y la manzana */
  129.     tablero[8][12] = 2; // Manzana
  130.     tablero[8][8] = 3;  // Cabeza de la serpiente
  131.     tablero[8][7] = 5;  // Cola de la serpiente
  132. }
  133.  
  134. void imprimir_tablero(int tablero[FILAS][COLUMNAS]){    //Se hace la funcion imprimir_tablero//
  135.    
  136.     printf("\t\t\t      ");    
  137.     fprintf(fichero_salida, "\t\t\t      ");       
  138.     for (int j = 0; j < COLUMNAS; j++) 
  139.     {
  140.         if(j<9){
  141.             printf(" %d ", j+1);
  142.             fprintf(fichero_salida, " %d ", j+1);      
  143.         }
  144.         else{
  145.             printf("%d ", j+1);
  146.             fprintf(fichero_salida, "%d ", j+1);       
  147.         }
  148.     }
  149.    
  150.     printf("\n");
  151.     fprintf(fichero_salida, "\n");     
  152.  
  153.     for (int i = 0; i < FILAS; i++)     //Ponemos los numeros de cada fila en un lateral, al lado del borde de 1's//
  154.     {
  155.         if(i<9){
  156.             printf("\t\t\t %d--->", i+1);
  157.             fprintf(fichero_salida, "\t\t\t %d--->", i+1);     
  158.         }  
  159.         else{
  160.             printf("\t\t\t%d--->", i+1);
  161.             fprintf(fichero_salida, "\t\t\t%d--->", i+1);      
  162.         }
  163.         for (int j = 0; j < COLUMNAS; j++)  //Imprime un espacio donde hay 0's y donde no, deja lo que hay//
  164.                                             //Se ponen los caracteres para cada serpiente y cada componente//
  165.         {
  166.             if(tablero[i][j]!=0 && tablero[i][j]<FILAS*COLUMNAS+3){
  167.                 if(tablero[i][j]==3){          
  168.                     printf("[脴]");
  169.                     fprintf(fichero_salida, "[脴]");   
  170.                 }else if(tablero[i][j]>3){
  171.                     printf("[#]");
  172.                     fprintf(fichero_salida, "[#]");
  173.                 }else if(tablero[i][j]<0){
  174.                     printf("[1]");
  175.                     fprintf(fichero_salida, "[1]");
  176.                 }
  177.                 else if(tablero[i][j] == 2){
  178.                     printf("[2]");
  179.                     fprintf(fichero_salida, "[2]");
  180.                 }
  181.             }else if(tablero[i][j]!=0 && tablero[i][j]>=FILAS*COLUMNAS+3){
  182.                 if(tablero[i][j]==FILAS*COLUMNAS+3){
  183.                     printf("[鈧琞");
  184.                     fprintf(fichero_salida, "[鈧琞");  
  185.                 }else{
  186.                     printf("[路]");
  187.                     fprintf(fichero_salida, "[路]");   
  188.                 }
  189.             }
  190.             else{
  191.                 printf("[ ]");
  192.                 fprintf(fichero_salida, "[ ]");    
  193.             }
  194.         }
  195.         printf("\n");
  196.         fprintf(fichero_salida, "\n"); 
  197.     }
  198. }
  199.  
  200. int selecciona_casilla(int tablero[FILAS][COLUMNAS], int fila, int columna){ //Se hace la funcion selecciona_casilla//
  201.     int i,j;
  202.     int poscabeza[2];
  203.     for(i=0; i<FILAS; i++){             //Recorre el tablero para ver la posici贸n de cada uno// //[0] Es la fila [1] Es la columna//
  204.         for(j=0; j<COLUMNAS; j++){      //Se hace el +1 para que empiece a contar las filas y columnas en 1 y no en 0//
  205.             if(tablero[i][j] == 3){
  206.                 poscabeza[0]=i+1;
  207.                 poscabeza[1]=j+1;
  208.             }
  209.  
  210.         }
  211.     }
  212.         if (        //Caso de que sea a la dcha, arriba o abajo de la cabeza//
  213.             ((fila==poscabeza[0]) && (columna>poscabeza[1] + 1)) ||
  214.             ((fila>poscabeza[0] + 1) && (columna==poscabeza[1])) ||
  215.             ((fila<poscabeza[0] - 1) && (columna==poscabeza[1])) ||
  216.             ((fila==poscabeza[0]) && (columna<poscabeza[1] - 1)) ||
  217.             ((fila!=poscabeza[0]) && (columna!=poscabeza[1]))
  218.         ) {
  219.  
  220.             return 0;
  221.  
  222.         }
  223.         return 1;
  224.  
  225. }
  226.  
  227. int selecciona_casilla_adyacente(int tablero[FILAS][COLUMNAS], int fila, int columna, int serpiente){
  228. //Se hace la funcion selecciona_casilla//
  229.     int i,j;
  230.     int poscabeza[2];
  231.     int cabeza;
  232.     if(serpiente==1) cabeza =3;
  233.     else cabeza = FILAS*COLUMNAS+3;
  234.  
  235.     for(i=0; i<FILAS; i++){             //Recorre el tablero para ver la posici贸n de cada uno// //[0] Es la fila [1] Es la columna//
  236.         for(j=0; j<COLUMNAS; j++){      //Se hace el +1 para que empiece a contar las filas y columnas en 1 y no en 0//
  237.             if(tablero[i][j] == cabeza){
  238.                 poscabeza[0]=i+1;
  239.                 poscabeza[1]=j+1;
  240.             }
  241.         }
  242.     }
  243.     if (        //Caso de que sea a la dcha, arriba o abajo de la cabeza//
  244.         ((fila==poscabeza[0]) && (columna>poscabeza[1] + 1)) ||
  245.         ((fila>poscabeza[0] + 1) && (columna==poscabeza[1])) ||
  246.         ((fila<poscabeza[0] - 1) && (columna==poscabeza[1])) ||
  247.         ((fila==poscabeza[0]) && (columna<poscabeza[1] - 1)) ||
  248.         ((fila!=poscabeza[0]) && (columna!=poscabeza[1]))
  249.     ) {
  250.  
  251.         return 0;
  252.  
  253.     }
  254.  
  255.     return 1;
  256.  
  257. }
  258.  
  259. void jugar_ordenador(int tablero_partida){      //Se hace la funcion jugar_ordenador//
  260.     int numero = 0, tablero[FILAS][COLUMNAS], opcion;
  261.     char nombre_fichero[25];
  262.     int tamanyo=5; //Tama帽o de la serpiente1, que se relaciona con el numero inicial de la cola//
  263.     int esValido;
  264.     int nuevafila;
  265.                     int nuevacolumna;
  266.     inicializar_tablero(tablero);      
  267.     do{
  268.         imprimir_tablero(tablero);
  269.         do{
  270.             printf("Opciones:\n");
  271.             printf("[1] - Elegir posicion\n");
  272.             printf("[2] - Tablero a fichero\n");
  273.             fprintf(fichero_salida,"Opciones:\n");
  274.             fprintf(fichero_salida,"[1] - Elegir posicion\n");
  275.             fprintf(fichero_salida,"[2] - Tablero a fichero\n");
  276.             scanf("%d", &opcion);
  277.             if( (opcion != 1) && (opcion !=2) ){
  278.                 printf ("ERROR: No se ha elegido ninguna de las 3 opciones, vuelva a intentarlo\n");
  279.                 fprintf(fichero_salida, "ERROR: No se ha elegido ninguna de las 3 opciones, vuelva a intentarlo\n");
  280.             }
  281.         }while( (opcion != 1) && (opcion != 2) );
  282.         switch(opcion){
  283.             case 1:
  284.                 do{
  285.                     printf("Seleccione la nueva fila: ");
  286.                     fprintf(fichero_salida, "Seleccione la nueva fila\n");
  287.                     scanf("%d",&nuevafila);
  288.                     fprintf(fichero_salida, "Se ha seleccionado la fila %d\n", nuevafila-1);
  289.                     printf("Seleccione la nueva columna: ");
  290.                     fprintf(fichero_salida, "Seleccione la nueva columna\n");
  291.                     scanf("%d",&nuevacolumna);
  292.                     fprintf(fichero_salida, "Se ha seleccionado la fila %d\n", nuevacolumna-1)     
  293.                     esValido = selecciona_casilla(tablero, nuevafila, nuevacolumna);
  294.                     /* Funcion selecciona_casilla igualada a si es valido el movimiento */
  295.                                 if(esValido){  
  296.                                     int i,j,come;
  297.                                     come=0;
  298.                                     if(tablero[nuevafila-1][nuevacolumna-1]==2){   
  299.                                         come=1;
  300.                                         tamanyo++;
  301.                                     }
  302.                                     else if(tablero[nuevafila-1][nuevacolumna-1]==5) {
  303.                                         printf ("Te has comido asi que has perdido\n");
  304.                                         fprintf(fichero_salida, "Te has comido asi que has perdido\n");
  305.                                         numero=1;
  306.                                     }
  307.                                     else if(tablero[nuevafila-1][nuevacolumna-1]==1) {  
  308.                                         printf ("Te has chocado asi que has perdido\n");
  309.                                         fprintf(fichero_salida, "Te has chocado asi que has perdido\n");
  310.                                         numero=1;
  311.                                     }
  312.                                     //Donde hay un 3 pongo un -2 y muevo el 3 a la nueva//
  313.                                     for(i=0;i<FILAS;i++){
  314.                                         for(j=0;j<COLUMNAS;j++){  //Recorre a ver donde hay un 3 (la cabeza), y en su lugar deja un -2//
  315.                                             if(tablero[i][j]==3){
  316.                                                 tablero[i][j]=-2;
  317.                                                     tablero[nuevafila-1][nuevacolumna-1]=3;
  318.                                             }
  319.                                         }                  
  320.                                     }      
  321.                                     int k;
  322.                                     int h;
  323.                                     int v;
  324.                                     int w;
  325.                                     //Codigo que busca cada posici贸n de la serpiente para poderla mover//
  326.                                     for(k=5; k<=tamanyo; k++){ 
  327.                                         w=0;
  328.                                         for(i=0; i<FILAS; i++){
  329.                                             for(j=0; j<COLUMNAS; j++){
  330.                                                 if(tablero[i][j]==-2 && w==0){
  331.                                                    
  332.                                                     for(h=0; h<FILAS; h++){
  333.                                                         for(v=0; v<COLUMNAS; v++){
  334.                                                             if(tablero[h][v]==k && k<tamanyo) tablero[h][v]=-2;
  335.                                                             else if(tablero[h][v]==k){
  336.                                                                 if(!come) tablero[h][v]=0;
  337.                                                                 else{
  338.                                                                     tablero[h][v]=tamanyo;
  339.                                                                    
  340.                                                                 }
  341.                                                             }
  342.                                                         }
  343.                                                     }
  344.                                                     tablero[i][j]=k;
  345.                                                     w=1;
  346.                                                 }
  347.                                             }
  348.                                         }
  349.                                     }
  350.                                 //Para poner una nueva manzana aleatoria//
  351.                                 if(come == 1){
  352.                                     int nuevamanzanafila=0;
  353.                                     int nuevamanzanacolumna=0;
  354.                                     srand(time(NULL));  //Para que sea aleatoria//
  355.                                     while(tablero[nuevamanzanafila][nuevamanzanacolumna]!=0){   //Para que solo se ponga si hay un 0 en esa posicion//
  356.                                         //Se declara que se quiere hacer a partir de 17//
  357.                                         nuevamanzanafila = 1+rand()%16; // Rand % 17 ponia antes
  358.                                         nuevamanzanacolumna = 1+rand()%16;
  359.                                     }
  360.                                     tablero[nuevamanzanafila][nuevamanzanacolumna]=2;
  361.                                 }
  362.                             }
  363.                             else {
  364.                                 printf("Por favor, inserte una fila valida\n");
  365.                                 fprintf(fichero_salida, "Por favor, inserte una fila valida\n");
  366.                             }
  367.                     }while (esValido != 1);
  368.                 break;
  369.                 case 2:
  370.                     printf("Introduzca el nombre del fichero para exportar el tablero\n");
  371.                     getchar();
  372.                     fgets(nombre_fichero, 25, stdin);
  373.                     printf("%s\n", nombre_fichero);
  374.                     guardar_tablero_fichero(int tablero[FILAS][COLUMNAS], char nombre_fichero[25])
  375.                 break;
  376.             }
  377.     }while(numero!=1);
  378. }
  379.  
  380. int jugar_contra_otro(void){   //Se hace la funcion jugar_contra_otro//
  381.     int numero, segunda = FILAS*COLUMNAS+5;
  382.     int tamanyo=5, tamanyo2=segunda; //Tama帽o de la serpiente, que se relaciona con el numero inicial de la cola//
  383.     int tablero[FILAS][COLUMNAS];
  384.     int filamanzana, columnamanzana, filacabezaserpiente, columnacabezaserpiente, filacolaserpiente, columnacolaserpiente;
  385.     int serpiente=2;//El jugador//
  386.     int cabeza;
  387.     inicializar_tablero(tablero);
  388.     //Colocaci贸n de la otra serpiente//
  389.     filacabezaserpiente = 10;
  390.     columnacabezaserpiente = 9;
  391.     filacolaserpiente = filacabezaserpiente+1;
  392.     columnacolaserpiente = columnacabezaserpiente;
  393.     tablero[filacabezaserpiente][columnacabezaserpiente] = segunda-2;
  394.     tablero[filacolaserpiente][columnacolaserpiente] = segunda;
  395.     numero=0;
  396.    
  397.     do{
  398.                 if(serpiente==1){
  399.                     serpiente = 2;
  400.                     cabeza=FILAS*COLUMNAS+3;
  401.                 }
  402.                 else {
  403.                     serpiente = 1;
  404.                     cabeza=3;
  405.                 }
  406.                 imprimir_tablero(tablero);
  407.                 printf("Juega la serpiente %d\n",serpiente);
  408.                 fprintf(fichero_salida, "Juega la serpiente %d\n",serpiente);
  409.                 int nuevafila;
  410.                 int nuevacolumna;
  411.                 printf("Seleccione la nueva fila\n");
  412.                 fprintf(fichero_salida, "Seleccione la nueva fila\n");
  413.                 scanf("%d",&nuevafila);
  414.                 printf("Seleccione la nueva columna\n");
  415.                 fprintf(fichero_salida, "Seleccione la nueva columna\n");
  416.                 scanf("%d",&nuevacolumna); 
  417.                
  418.             int esValido = selecciona_casilla_adyacente(tablero, nuevafila, nuevacolumna, serpiente);
  419.                 //Funcion selecciona_casilla_adyacente igualada a si es valido el movimiento//
  420.                 if(esValido){  
  421.                     int i,j,come;
  422.                     come=0;
  423.                     if(tablero[nuevafila-1][nuevacolumna-1]==2){   
  424.                         come=1;
  425.                         tablero[nuevafila-1][nuevacolumna-1]==0; //0 en la manzana cuando se la come//
  426.                         if(serpiente==1)tamanyo++;   //Crece//
  427.                         else tamanyo2++;
  428.                     }
  429.                     else if(tablero[nuevafila-1][nuevacolumna-1]>3 && tablero[nuevafila-1][nuevacolumna-1]!=segunda-2 ) {
  430.                         printf ("Serpiente 2 has perdido\n");
  431.                         fprintf(fichero_salida, "Serpiente 2 has perdido\n");
  432.                         numero=serpiente;
  433.                     }
  434.                     else if(tablero[nuevafila-1][nuevacolumna-1]==1) {
  435.                         printf ("Te has chocado asi que has perdido\n");
  436.                         fprintf(fichero_salida, "Te has chocado asi que has perdido\n");
  437.                         numero=serpiente;
  438.                     }else{    //Gana la m谩s larga
  439.                         if(serpiente==1 && tablero[nuevafila-1][nuevacolumna-1]==segunda-2 || serpiente==2 && tablero[nuevafila-1][nuevacolumna-1]==3){        //Colisi贸n entre cabezas
  440.                          if(tamanyo>tamanyo2) numero = 2;
  441.                          else numero = 1;
  442.                         }
  443.                     }
  444.  
  445.                     for(i=0;i<FILAS;i++){
  446.                         for(j=0;j<COLUMNAS;j++){  //Recorre a ver donde hay una cabeza, y en su lugar deja un -2//
  447.                             if(tablero[i][j]==cabeza){
  448.                                 tablero[i][j]=-2;
  449.                                     tablero[nuevafila-1][nuevacolumna-1]=cabeza;
  450.                             }
  451.                         }                  
  452.                     }              
  453.                     int k;
  454.                     int h;
  455.                     int v;
  456.                     int w;
  457.                     int tam;
  458.                     int cuerpo;
  459.                     if(serpiente == 1){
  460.                         tam = tamanyo;
  461.                         cuerpo = 5;
  462.                     }
  463.                     else{
  464.                         tam = tamanyo2;
  465.                         cuerpo = segunda; //segunda = FILAS*COLUMNAS+5//
  466.                     }
  467.                     for(k=cuerpo; k<=tam; k++){ //Codigo que busca cada posici贸n de la serpiente para poderla mover//
  468.                         w=0;
  469.                         for(i=0; i<FILAS; i++){
  470.                             for(j=0; j<COLUMNAS; j++){
  471.                                 if(tablero[i][j]==-2 && w==0){
  472.                                    
  473.                                     for(h=0; h<FILAS; h++){
  474.                                         for(v=0; v<COLUMNAS; v++){
  475.                                             if(tablero[h][v]==k && k<tam) tablero[h][v]=-2;
  476.                                             else if(tablero[h][v]==k){
  477.                                                 if(!come) tablero[h][v]=0;
  478.                                                 else{
  479.                                                     tablero[h][v]=tam;
  480.                                                    
  481.                                                 }
  482.                                             }
  483.                                         }
  484.                                     }
  485.                                     tablero[i][j]=k;
  486.                                     w=1;
  487.                                 }
  488.                             }
  489.                         }
  490.                     }
  491.                 //Para poner una nueva manzana aleatoria//
  492.                 if(come){
  493.                     int nuevamanzanafila=0;
  494.                     int nuevamanzanacolumna=0;
  495.                     srand(time(NULL));  //Para que sea aleatoria//
  496.                     while(tablero[nuevamanzanafila][nuevamanzanacolumna]!=0){   //Para que solo se ponga si hay un 0 en esa posicion//
  497.                         //Se declara que se quiere hacer a partir de 17//
  498.                         nuevamanzanafila = rand()%17;
  499.                         nuevamanzanacolumna = rand()%17;
  500.                     }
  501.                     tablero[nuevamanzanafila][nuevamanzanacolumna]=2;
  502.                 }
  503.             }
  504.             else {   //Si la posici贸n no es v谩lida cambia de turno para que al volver a cambiar arriba sigua jugando el mismo//
  505.                 printf("Por favor, inserte una fila valida\n");
  506.                 fprintf(fichero_salida, "Por favor, inserte una fila valida\n");
  507.                 if(serpiente == 1) serpiente =2;
  508.                 else serpiente =1;
  509.             }
  510.     }
  511.     while (numero==0);
  512.     return numero;
  513. }
  514.  
  515. void cargar_tablero_partida(int tablero[FILAS][COLUMNAS]){
  516.     int i,j;
  517.     for(i=0; i<FILAS; i++){
  518.         for(j=0; j<COLUMNAS; j++){
  519.             fscanf(fichero_entrada, "%d", &tablero[i][j]);
  520.         }
  521.     }
  522.     fclose(fichero_entrada);
  523. }
  524.  
  525. void guardar_tablero_fichero(int tablero[FILAS][COLUMNAS], char nombre_fichero[25]){
  526.     int i,j;
  527.     FILE *fichero_salida_tablero;
  528.     fichero_salida_tablero = fopen(nombre_fichero,"w");
  529.     if( fichero_salida_tablero == NULL ){
  530.         printf("Error: No se pudo abrir el fichero de entrada\n");
  531.     }
  532.     else{
  533.         for(i=0; i<FILAS; i++){
  534.             for(j=0; j<COLUMNAS; j++){
  535.                 fprintf(fichero_salida_tablero, "%d\t", tablero[i][j]);
  536.             }
  537.             fprintf(fichero_salida_tablero, "\n");
  538.         }
  539.         fclose(fichero_entrada);
  540.     }
  541.  
  542. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top