Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - dragonlady

#11
Entendí si, que fue un ejemplo, yo digo ya que son numeros, no veo como podria usarlo para algo que cambia siempre en el tablero

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//Prototipos
void menu();
void reglas();
void fin_juego();
void Elegir_Bosque();
void Iniciar_Bosque();
void Actualizar_Juego();
void Bucle_Juego();
void mover_tirarflecha(int);

//Variables globales
char bosque6x6[6][6];
char bosque8x8[8][8];
char bosque10x10[10][10];
char bosque14x14[14][14];
char bosque18x18[18][18];

int opcion=0;
int tam_bosque=0;

int main()
{
    while(opcion!=3)
    {
        menu();
        scanf("%d",&opcion);
        switch(opcion)
        {
            case 1: Elegir_Bosque();
                    break;
            case 2: reglas();
                    break;
            case 3: fin_juego();
                    break;
        }
     }
   return 0;
}

void menu()
{
   printf("     ______ARQUEROS EN EL BOSQUE_______\n");
   printf("     ____________OOOOOO________________\n");
   printf("     _________OOOOOOOOOOOOO____________\n");
   printf("     _____OOOOOOOOOOOOOOOOOOOO_________\n");
   printf("     ___OOOOOOOOOOOOOOOOOOOOOOOO_______\n");
   printf("     ___OOOOOOOOOOOOOOOOOOOOOOOO_______\n");
   printf("     _____OOOOOOOOOOOOOOOOOOOO_________\n");
   printf("     ______OOOOOOOOOOOOOOOOOO__________\n");
   printf("     _________OOOOOOOOOOOO_____________\n");
   printf("     __<----____OOOOOOOO_______________\n");
   printf("     _____________OOOO_________________\n");
   printf("     _____________OOOO_______---->_____\n");
   printf("     _____________OOOO_________________\n");
   printf("     _____________OOOO_________________\n");
   printf("\n");
   printf("     MENU PRINCIPAL\n");
   printf("     ><><><><><><><\n");
   printf("     Ingrese una de las opciones: \n");
   printf("     1. Jugar\n");
   printf("     2.Ver reglas\n");
   printf("     3.Salir del juego\n");
   printf("\n");
}

void reglas() //aca muestro las reglas. tiene que poder volver al menu anterior
{
   system("cls");
   printf("El juego consiste en eliminar al arquero del extremo opuesto. \n");
   printf("Cada turno puede elegir moverse una casilla o lanzar un flechazo. \n");
   printf("Los flechazos se mueven en linea recta, maximo cinco lugares.\n");
   printf("Ni los jugadores ni los flechazos pueden atravezar los arboles(X)");
   printf(" Al recibir un flechazo el jugador pierde el round, las partidas se componen de 3 round y las gana el que gane 2 de ellos.\n");
   printf("Jugador primero sera identificado como 1 y jugador segundo como 2.\n");
   printf("\n\n");
   char p;
   printf (">>Presiona cualquier tecla y enter para volver al menu ");
   scanf (" %c",&p);
}

void fin_juego()
{
    system("cls");
    printf("\n\n\n\t\t\t* GRACIAS POR JUGAR! *\n\n\n");
    printf("\t\t\t  Sabrina Cabrera.\n \t\t\t  Programacion.\n \t\t\t  Tecnologo 2015\n\n");
}

void Elegir_Bosque()
{
   system("cls");
   int elige_bosque;
   printf("     >        Ingresa una opcion:        <\n\n");
   printf("     >        1- Bosque de 6 x 6         <\n");
   printf("     >        2- Bosque de 8 x 8         <\n");
   printf("     >        3- Bosque de 10 x 10       <\n");
   printf("     >        4- Bosque de 14 x 14       <\n");
   printf("     >        5- Bosque de 18 x 18       <\n");
   scanf(" %d", &elige_bosque);

   system("cls");

   switch(elige_bosque)
   {
       case 1: tam_bosque = 6;
               Iniciar_Bosque();
               Bucle_Juego();
               break;
       case 2: tam_bosque = 8;
               Iniciar_Bosque();
               Bucle_Juego();
               break;
       case 3: tam_bosque = 10;
               Iniciar_Bosque();
               Bucle_Juego();
               break;
       case 4: tam_bosque = 14;
               Iniciar_Bosque();
               Bucle_Juego();
               break;
       case 5: tam_bosque = 18;
               Iniciar_Bosque();
               Bucle_Juego();
               break;
   }

}
//valores iniciales para el bosque
void Iniciar_Bosque()
{
    srand (time(NULL));

    int Xnum=0;
    int i, j;

    if(tam_bosque == 6)
    {
        for(i = 0; i < tam_bosque;i++)
            for(j = 0; j < tam_bosque;j++)
                bosque6x6[i][j] = ' ';

        bosque6x6[0][0] = '1';
        bosque6x6[5][5] = '2';


        while(Xnum < tam_bosque/2 )

        {
            i = (rand() % tam_bosque);
            j = (rand() % tam_bosque);

            if(bosque6x6[i][j] == ' ')
            {
                bosque6x6[i][j] = 'X';
                Xnum++;
            }

        }
    }

    else if(tam_bosque == 8)
    {
        for(i = 0; i < tam_bosque;i++)
            for(j = 0; j < tam_bosque;j++)
                bosque8x8[i][j] = ' ';

        bosque8x8[0][0] = '1';
        bosque8x8[7][7] = '2';

        while(Xnum < tam_bosque/2 )
        {
            i = rand() % tam_bosque;
            j = rand() % tam_bosque;

            if(bosque8x8[i][j] == ' ')
            {
                bosque8x8[i][j] = 'X';
                Xnum++;
            }

        }
    }
    else if(tam_bosque == 10)
    {
        for(i = 0; i < tam_bosque;i++)
            for(j = 0; j < tam_bosque;j++)
                bosque10x10[i][j] = ' ';

        bosque10x10[0][0] = '1';
        bosque10x10[9][9] = '2';

        while(Xnum < tam_bosque/2 )
        {
            i = rand() % tam_bosque;
            j = rand() % tam_bosque;

            if(bosque10x10[i][j] == ' ')
            {
                bosque10x10[i][j] = 'X';
                Xnum++;
            }

        }
    }
    else if(tam_bosque == 14)
    {
        for(i = 0; i < tam_bosque;i++)
            for(j = 0; j < tam_bosque;j++)
                bosque14x14[i][j] = ' ';

        bosque14x14[0][0] = '1';
        bosque14x14[13][13] = '2';

        while(Xnum < tam_bosque/2 )
        {
            i = rand() % tam_bosque;
            j = rand() % tam_bosque;

            if(bosque14x14[i][j] == ' ')
            {
                bosque14x14[i][j] = 'X';
                Xnum++;
            }

        }
    }
    else if(tam_bosque == 18)
    {
        for(i = 0; i < tam_bosque;i++)
            for(j = 0; j < tam_bosque;j++)
                bosque18x18[i][j] = ' ';

        bosque18x18[0][0] = '1';
        bosque18x18[17][17] = '2';

        while(Xnum < tam_bosque/2 )
        {
            i = rand() % tam_bosque;
            j = rand() % tam_bosque;

            if(bosque18x18[i][j] == ' ')
            {
                bosque18x18[i][j] = 'X';
                Xnum++;
            }

        }
    }

}
//dibuja cuando sea necesario
void Actualizar_Juego()
{
    system("cls");

    if(tam_bosque == 6)
    {
        int i,j;
        printf("\n  ");

        for (j = 0; j < tam_bosque;j++) //filas alfabeticas
            printf("  %c", 'a'+j);
        printf("\n");

        for (i = 0;i < tam_bosque;i++) //columnas numeradas
        {
            printf(" %2d", i);

            for (j = 0;j < tam_bosque;j++)
            {
                printf("| %c", bosque6x6[i][j]);
            }
            printf("| \n");
        }
    }
    else if( tam_bosque == 8)
    {
        int i,j;
        printf("\n  ");

        for (j = 0;j < tam_bosque;j++) //filas alfabeticas
            printf("  %c", 'a'+j);
        printf("\n");

        for (i = 0;i < tam_bosque;i++) //columnas numeradas
        {
            printf(" %2d", i);

            for (j = 0;j < tam_bosque;j++)
            {
                printf("| %c", bosque8x8[i][j]);
            }
            printf("| \n");
        }
    }
    else if( tam_bosque == 10)
    {
        int i,j;
        printf("\n  ");

        for (j = 0;j < tam_bosque;j++) //filas alfabeticas
            printf("  %c", 'a'+j);
        printf("\n");

        for (i = 0;i < tam_bosque;i++) //columnas numeradas
        {
            printf(" %2d", i);

            for (j = 0;j < tam_bosque;j++)
            {
                printf("| %c", bosque10x10[i][j]);
            }
            printf("| \n");
        }
    }
    else if( tam_bosque == 14)
    {
        int i,j;
        printf("\n  ");

        for (j = 0;j < tam_bosque;j++) //filas alfabeticas
            printf("  %c", 'a'+j);
        printf("\n");

        for (i = 0;i < tam_bosque;i++) //columnas numeradas
        {
            printf(" %2d", i);

            for (j = 0;j < tam_bosque;j++)fin_juego()
            {
                printf("| %c", bosque14x14[i][j]);
            }
            printf("| \n");
        }
    }
    else if( tam_bosque == 18)
    {
        int i,j;
        printf("\n  ");

        for (j = 0;j < tam_bosque;j++) //filas alfabeticas
            printf("  %c", 'a'+j);
        printf("\n");

        for (i = 0;i < tam_bosque;i++) //columnas numeradas
        {
            printf(" %2d", i);

            for (j = 0;j < tam_bosque;j++)
            {
                printf("| %c", bosque18x18[i][j]);
            }
            printf("| \n");
        }
    }

}

//a jugar!!
void Bucle_Juego()
{
    int ganador=0;
    int turno=0;

    printf("Que jugador empieza?: ");
    scanf(" %d", &turno);

    do
    {
        while(ganador == 0)//que se repita mientras no haya ningun ganador
        {
            Actualizar_Juego(); //Actualiza el juego
            mover_tirarflecha(turno); //mueve o ataca

            //Falta comprobar si alguno ya ganó

            //Cambiando los turnos
            if(turno == 1)
            {
                turno = 2;
            }
                else
                    turno = 1;
        }

        //cuando se termine el bucle comprueba quien ha ganado
        if(ganador == 1)
            {
                printf("Ha Ganado el jugador 1");
            }
                else if(ganador == 2)
                    printf("Ha Ganado el jugador 2");

        ganador++;
    }
     while (ganador < 3);

     //para que pregunte si quiere salir o seguir jugando
     /*char respuesta;
     int s=0,n=1;
     printf("Quiere jugar de nuevo? (s/n): ");
     scanf(" %c", &respuesta);

    if (respuesta==s)
    {

    }
        else if (respuesta==n)
            fin_juego();*/

}

void mover_tirarflecha(int turno)
{
    char imagen_jugador; //dibuja 1' o '2' dependiendo del turno

    if(turno == 1)
    {
        imagen_jugador = '1';
        printf("Es el turno del jugador 1\n");
    }
    else
    {
        imagen_jugador = '2';
        printf("Es el turno del jugador 2\n");
    }

   char accion;

    //moverse
   int o_i,d_i; //coordenadas origen
   char o_j,d_j;  //coordenadas destino

   printf("Moverte o tirar flecha? (m o t)");
   scanf(" %c", &accion);

   //para saber lo que ha ingresado
   if(accion == 'm')
   {
       printf("\nIngrese Coordenadas origen (ej. 0-a) "); //origen
       scanf("%d-%c", &o_i,&o_j);

       printf("\nIngrese Coordenadas destino (1 lugar) "); //destino
       scanf("%d-%c", &d_i,&d_j);


       /*Dependiendo del tamaño del bosque*/
       if( tam_bosque == 6)
       {
           //para que se mueva 1 solo lugar
           /*if ((bosque6x6[d_i+1][d_j])&&(bosque6x6[d_i][d_j+1])&&(bosque6x6[d_i-1][d_j])&&(bosque6x6[d_i][d_j-1]))*/
           {
                bosque6x6[o_i][o_j - 97]= ' '; //queda vacio donde estaba
                bosque6x6[d_i][d_j - 97]= imagen_jugador; //a donde lo mueve mientras esté el espacio vacio
           }
       }
       else if( tam_bosque == 8)
       {
           bosque8x8[o_i][o_j - 97]= ' ';
           bosque8x8[d_i][d_j - 97]= imagen_jugador;
       }
       else if( tam_bosque == 10)
       {
           bosque10x10[o_i][o_j - 97]= ' ';
           bosque10x10[d_i][d_j - 97]= imagen_jugador;
       }
       else if( tam_bosque == 14)
       {
           bosque14x14[o_i][o_j - 97]= ' ';
           bosque14x14[d_i][d_j - 97]= imagen_jugador;
       }
       else if( tam_bosque == 18)
       {
           bosque18x18[o_i][o_j - 97]= ' ';
           bosque18x18[d_i][d_j - 97]= imagen_jugador;
       }

   }
  else if(accion == 't') //para disparar flecha. Se mueven arriba,abajo,izq,derecha
   {
       //para el bosque x6
       if (tam_bosque==6)
       {
           int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
           int i=d_i;
           int j=d_j;

           while((limite<5) && (arriba<6) && (bosque6x6[i][j]!='X'))//para arriba
           {
               if (bosque6x6[i][j]=='2')
                  {
                        arriba++;
                        j++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<5) && (abajo<6) && (bosque6x6[i][j]!='X'))//para abajo

           {
               if (bosque6x6[i][j]=='2')
                  {
                        abajo++;
                        j--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }

           while((limite<5) && (izq<6) && (bosque6x6[i][j]!='X'))//para la izquierda
           {
               if (bosque6x6[i][j]=='2')
                    {
                        izq++;
                        i--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<5) && (derecha<6) && (bosque6x6[i][j]!='X'))//para la derecha
           {
               if (bosque6x6[i][j]=='2')
                  {
                        derecha++;
                        i++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }


       }/*

        //para el bosque x8
       if (tam_bosque==8)
       {
           int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
           int i=d_i;
           int j=d_j;

           while((limite<7) && (arriba<8) && (bosque6x6[i][j]!='X'))//para arriba
           {
               if (bosque8x8[i][j]=='2')
                  {
                        arriba++;
                        j++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<7) && (abajo<8) && (bosque8x8[i][j]!='X'))//para abajo

           {
               if (bosque8x8[i][j]=='2')
                  {
                        abajo++;
                        j--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }

           while((limite<7) && (izq<8) && (bosque8x8[i][j]!='X'))//para la izquierda
           {
               if (bosque8x8[i][j]=='2')
                    {
                        izq++;
                        i--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<7) && (derecha<8) && (bosque8x8[i][j]!='X'))//para la derecha
           {
               if (bosque8x8[i][j]=='2')
                  {
                        derecha++;
                        i++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }


       }

        //para el bosque x10
       if (tam_bosque==10)
       {
           int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
           int i=d_i;
           int j=d_j;

           while((limite<9) && (arriba<10) && (bosque10x10[i][j]!='X'))//para arriba
           {
               if (bosque10x10[i][j]=='2')
                  {
                        arriba++;
                        j++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<9) && (abajo<10) && (bosque10x10[i][j]!='X'))//para abajo

           {
               if (bosque10x10[i][j]=='2')
                  {
                        abajo++;
                        j--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }

           while((limite<9) && (izq<10) && (bosque10x10[i][j]!='X'))//para la izquierda
           {
               if (bosque10x10[i][j]=='2')
                    {
                        izq++;
                        i--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<9) && (derecha<10) && (bosque10x10[i][j]!='X'))//para la derecha
           {
               if (bosque10x10[i][j]=='2')
                  {
                        derecha++;
                        i++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }


       }

        //para el bosque x14
       if (tam_bosque==14)
       {
           int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
           int i=d_i;
           int j=d_j;

           while((limite<13) && (arriba<14) && (bosque14x14[i][j]!='X'))//para arriba
           {
               if (bosque14x14[i][j]=='2')
                  {
                        arriba++;
                        j++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<13) && (abajo<14) && (bosque14x14[i][j]!='X'))//para abajo
           {
               if (bosque14x14[i][j]=='2')
                  {
                        abajo++;
                        j--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }

           while((limite<13) && (izq<14) && (bosque6x6[i][j]!='X'))//para la izquierda
           {
               if (bosque6x6[i][j]=='2')
                    {
                        izq++;
                        i--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<13) && (derecha<14) && (bosque14x14[i][j]!='X'))//para la derecha
           {
               if (bosque6x6[i][j]=='2')
                  {
                        derecha++;
                        i++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }


       }

        //para el bosque x18
       if (tam_bosque==6)
       {
           int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
           int i=d_i;
           int j=d_j;

           while((limite<17) && (arriba<18) && (bosque18x18[i][j]!='X'))//para arriba
           {
               if (bosque18x18[i][j]=='2')
                  {
                        arriba++;
                        j++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<17) && (abajo<18) && (bosque18x18[i][j]!='X'))//para abajo

           {
               if (bosque18x18[i][j]=='2')
                  {
                        abajo++;
                        j--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }

           while((limite<17) && (izq<18) && (bosque18x18[i][j]!='X'))//para la izquierda
           {
               if (bosque18x18[i][j]=='2')
                    {
                        izq++;
                        i--;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");

           }

           while((limite<17) && (derecha<18) && (bosque18x18[i][j]!='X'))//para la derecha
           {
               if (bosque6x6[i][j]=='2')
                  {
                        derecha++;
                        i++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");
           }


       }*/
   }
}
#12
Hola! Gracias por contestar a ambos. Se me pasan detalles por despistada y apurada.

Continuando con la parte de los ataques, respecto a lo que me comentaste, lo entiendo pero un compañero me mostraba como a el si le funcionaba usando matrices [j] asi como las puse yo :O Y lo que sería imposible es que no es fijo, no puedo poner por ejemplo
  • [3] como me indicabas, ya que uso i y j porque pueden estar en cualquier lado los arboles, son random.
    Le hice algunas modificaciones pero lo gracioso es que directamente cuando el jugador indica la opcion de disparar, se va al else directamente, siempre en un "Fallaste!" que no termina,


    if (tam_bosque==6)
           {
               int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
               int i=d_i;
               int j=d_j;

               while((limite<5) && (arriba<6) && (bosque6x6[i][j]!='X'))//para arriba
               {
                   if (bosque6x6[i][j]=='2')
                      {
                            arriba++;
                            j++;
                            printf("GAME OVER: Jugador 2");
                      }
                            else printf("Fallaste!\n");

               }

               while((limite<5) && (abajo<6) && (bosque6x6[i][j]!='X'))//para abajo

               {
                   if (bosque6x6[i][j]=='2')
                      {
                            abajo++;
                            j--;
                            printf("GAME OVER: Jugador 2");
                      }
                            else printf("Fallaste!\n");
               }

               while((limite<5) && (izq<6) && (bosque6x6[i][j]!='X'))//para la izquierda
               {
                   if (bosque6x6[i][j]=='2')
                        {
                            izq++;
                            i--;
                            printf("GAME OVER: Jugador 2");
                      }
                            else printf("Fallaste!\n");

               }

               while((limite<5) && (derecha<6) && (bosque6x6[i][j]!='X'))//para la derecha
               {
                   if (bosque6x6[i][j]=='2')
                      {
                            derecha++;
                            i++;
                            printf("GAME OVER: Jugador 2");
                      }
                            else printf("Fallaste!\n");
               }


           }
#13
Hola, yo de nuevo. Tengo 2 dudas,

Esta parte la quise cambiar para poder elegir quien empieza:

void mover_tirarflecha(int turno)
{
    char imagen_jugador; //dibuja 1' o '2' dependiendo del turno

    printf("Que jugador empieza?: ");
    scanf(" %d", turno);

    if(turno == 1)
    {
        imagen_jugador = '1';
        printf("Es el turno del jugador 1\n");
    }
    else
    {
        imagen_jugador = '2';
        printf("Es el turno del jugador 2\n");
    }


Pero me dice un error  |warning: format '%d' expects argument of type 'int *', but argument 2 has type 'int' [-Wformat]|

Denitivamente tengo problemas con los parámetros :|

Y después estoy tratando de hacer los flechazos:

else if(accion == 't') //para disparar flecha. Se mueven arriba,abajo,izq,derecha
   {
       if (tam_bosque==6)
       {
           int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
           int i=d_i;
           int j=d_j;

           while((limite<5) && (arriba<6) && (bosque6x6!='X'))//para arriba
           {
               if (bosque6x6[i][j]=='2')
                  {
                        arriba++;
                        j++;
                        printf("GAME OVER: Jugador 2");
                  }
                        else printf("Fallaste!\n");


Bueno y así con abajo, derecha e izquierda. Acá el error es: warning: comparison between pointer and integer [enabled by default]|
#14
Una pregunta de curiosidad, para que usas %i? es funcional remplazarlo por %d? Solo uso regularmente %d, %c y %f. Y lo googlié y pareciera que es lo mismo usar i q d?
#15
Gracias por toda la ayuda la verdad, que el día de hoy había sido muy desalentador, después de todo lo que había hecho me hicieron cambiar casi todo.
Voy a revisar todo bien, entender y ahí agarrar para terminarlo.
Se que había quedado muy a medias, lo fuí subiendo a medida que estaba en clase, estaba desesperando porque se me armó un lio tremendo, consulté unas cosas pero fue peor jaja Así que tengo varias versiones del juego a medio terminar.

Gracias por la ayuda, de nuevo. Cuando lo termine, muestro el resultado :)
#16
Malas noticias, mi profesor me rezongó que hiciera un solo bosque por un tema que la variable bosque la tenia que hacer global y char bosque[tam][tam] no me la permitia usar global (aun definiendo tam=1 globalmente)
asique me hizo hacer 5 bosques:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//prototipos
void menu();
int ingrese_opcion();
void mover_jugadores();
void jugar();
void reglas();
void arboles();
void mostrar_bosques();
void bosque_1();
void bosque_2();
void bosque_3();
void bosque_4();
void bosque_5();
void pausa();
void turno_jugador1();
void turno_jugador2();
void flechazos();
int ganador();
char fin_juego();

//variables globales
char bosque[1][1];
int opcion;
int jugadas;

int main()
{
     do
        {
            menu();
            opcion=ingrese_opcion();
            switch (opcion)
            {
               case 1:
                   jugar();
                   getchar();
                   break;
               case 2:
                   reglas();
                   break;
               case 3:
                    fin_juego();



            }
        }
        while (opcion!=3);
    return 0;
}

void menu()
{
    printf("______ARQUEROS EN EL BOSQUE_______\n");
    printf("____________OOOOOO________________\n");
    printf("_________OOOOOOOOOOOOO____________\n");
    printf("_____OOOOOOOOOOOOOOOOOOOO_________\n");
    printf("___OOOOOOOOOOOOOOOOOOOOOOOO_______\n");
    printf("___OOOOOOOOOOOOOOOOOOOOOOOO_______\n");
    printf("_____OOOOOOOOOOOOOOOOOOOO_________\n");
    printf("______OOOOOOOOOOOOOOOOOO__________\n");
    printf("_________OOOOOOOOOOOO_____________\n");
    printf("__<----____OOOOOOOO_______________\n");
    printf("_____________OOOO_________________\n");
    printf("_____________OOOO_______---->_____\n");
    printf("_____________OOOO_________________\n");
    printf("_____________OOOO_________________\n");
    printf("\n");
    printf("MENU PRINCIPAL\n");
    printf("><><><><><><><\n");
    printf("Ingrese una de las opciones: \n");
    printf("1. Jugar\n");
    printf("2.Ver reglas\n");
    printf("\n");
}

int ingrese_opcion()
{
    int opcion;
    scanf(" %d",&opcion);
    return opcion;
}

void jugar()
{
    system("clear");

    do
    {

    int elije_bosque;
    printf("*        Ingresa una opcion:        *\n\n");
    printf("*        1- Bosque de 6 x 6         *\n");
    printf("*        2- Bosque de 8 x 8         *\n");
    printf("*        3- Bosque de 10 x 10       *\n");
    printf("*        4- Bosque de 14 x 14       *\n");
    printf("*        5- Bosque de 18 x 18       *\n");
    scanf(" %d", &elije_bosque);

    system("clear");
        switch (opcion)
            {
               case 1:
                   bosque_1();
                   break;
               case 2:
                   bosque_2();
                   break;
               case 3:
                    bosque_3();
                    break;
                case 4:
                   bosque_4();
                   break;
               case 5:
                   bosque_5();
                   break;

               default:
                   fin_juego();
            }

    }
    while (opcion!=5);

    mover_jugadores();

}

void reglas() //aca muestro las reglas. tiene que poder volver al menu anterior
{
    system("clear");
    printf("El juego consiste en eliminar al arquero del extremo opuesto. \n");
    printf("Cada turno puede elegir moverse una casilla en sentido horizontal o vertical o lanzar un flechazo. \n");
    printf("Los flechazos se mueven en linea recta, maximo cinco lugares.\n");
    printf("Ni los jugadores ni los flechazos pueden atravezar los arboles(X)");
    printf(" Al recibir un flechazo el jugador pierde el round, las partidas se componen de 3 round y las gana el que gane 2 de ellos.\n");
    printf("Jugador primero sera identificado como 1 y jugador segundo como 2.\n");
    printf("\n");
    pausa();

}

void arboles(int a)
{
   //generando las 3 X aleatoriamente
   srand (time(NULL));

   int Xnum=0; //contador
   int i, j;
   a=0;

   while(Xnum<a/2)//hasta que aparezcan la cantidad de X
    {
       i=rand()%a;
       j=rand()%a;

    if(bosque[i][j]==' ')//verifica que no haya X en esa posicion
       {
           bosque[i][j]='X';   //dibuja una X
           Xnum++; //para no dibujar mas X de las que deben ser
       }

   }

}

void mostrar_bosques(int tam)
{
    int i,j;
    //mostrar bosque
   printf("\n  ");

   for (j=0;j<tam;j++) //filas alfabeticas
       printf("  %c", 'a'+j);
   printf("\n");

   for (i=0;i<tam;i++) //columnas numeradas
    {
       printf(" %d", i);

       for (j=0;j<tam;j++)
        {
          printf("| %c", bosque[i][j]);
        }
       printf("| \n");
     }
}


void bosque_1()
{
    system("clear");

   int i,j;

   //Iniciando los valores del bosque a ' '
   for(i=0;i<6;i++)
       for(j=0;j<6;j++)
           bosque[i][j]=' ';

//mostrar jugadores 1 y 2
        bosque[0][0]='1';
        bosque[5][5]='2';
}

void bosque_2()
{
    system("clear");

   //mostrar jugadores 1 y 2
        bosque[0][0]='1';
        bosque[7][7]='2';

   int i,j;

   //Iniciando los valores del bosque a ' '
   for(i=0;i<8;i++)
       for(j=0;j<8;j++)
           bosque[i][j]=' ';
}

void bosque_3()
{
    system("clear");

   //mostrar jugadores 1 y 2
        bosque[0][0]='1';
        bosque[9][9]='2';

   int i,j;

   //Iniciando los valores del bosque a ' '
   for(i=0;i<10;i++)
       for(j=0;j<10;j++)
           bosque[i][j]=' ';
}

void bosque_4()
{
    system("clear");

   //mostrar jugadores 1 y 2
        bosque[0][0]='1';
        bosque[13][13]='2';

   int i,j;

   //Iniciando los valores del bosque a ' '
   for(i=0;i<14;i++)
       for(j=0;j<14;j++)
           bosque[i][j]=' ';
}

void bosque_5()
{
    system("clear");

   //mostrar jugadores 1 y 2
        bosque[0][0]='1';
        bosque[17][17]='2';

   int i,j;

   //Iniciando los valores del bosque a ' '
   for(i=0;i<18;i++)
       for(j=0;j<18;j++)
           bosque[i][j]=' ';
}

void pausa()
{
    char p;
    printf ("Presiona cualquier tecla y enter para volver al menu");
    scanf (" %c",&p);
}

void mover_jugadores()
{
    int jugador;
    int turno;

    printf("Elige quien empieza (jugador 1 o 2): ");

    switch(jugadas)
    {
        case 1:
          jugador=1;
          turno=0;
               do
                {
                    turno++;
                    if (jugador)
                    {
                        turno_jugador1();
                    }
                        else
                            turno_jugador2();

                }
           while ((!ganador())&&(turno<=3));
    }
}

void turno_jugador1() //movimientos de jugador 1
{
    char accion;

     //moverse
    int o_i,o_j; //coordenadas origen
    int d_i,d_j; //coordenadas destino

    printf("Moverte o tirar flecha? (m o t)");
    scanf(" %c", &accion);

    //para saber lo que ha ingresado
    if(accion == 'm')
    {

        printf("Ingresa coordenada i origen: ");
        scanf("%d \n", &o_i);
        printf("Ingresa coordenada j origen: ");
        scanf("%d \n", &o_j);
        /*x ej el jugador ingresó: o_i  = 0, o_j = 0*/

        printf("Ingresa coordenada i destino: ");
        scanf("%d \n", &d_i);
        printf("Ingresa coordenada j destino: ");
        scanf("%d \n", &d_j);
        /*x ej el jugador ingresó: o_i  = 0, o_j = 1*/

        //Entonces:
        bosque[o_i][o_j]= ' '; //que en la posicion origen no haya nada
        bosque[d_i][d_j]= '1'; //Mover el jugador a la posicion destino

    }
        else if(accion == 't')
        {

            do
            {
               bosque[d_i][d_j]='t';
            }
                while(bosque[d_i][d_j]!='X');

        if (bosque[d_i][d_j]=='2')
        {

        }

        }
            else
            {
                printf("Accion incorrecta \n");
            }
}

void turno_jugador2() //movimientos de jugador 1
{

    char accion;
    //moverse
    int o_i,o_j; //coordenadas origen
    int d_i,d_j; //coordenadas destino

    printf("Moverte o tirar flecha? (m o t)");
    scanf(" %c", &accion);

    //para saber lo que ha ingresado
    if(accion == 'm')
    {
        printf("Ingresa coordenada i origen: ");
        scanf("%d \n", &o_i);
        printf("Ingresa coordenada j origen: ");
        scanf("%d \n", &o_j);
        /*x ej el jugador ingresó: o_i  = 0, o_j = 0*/

        printf("Ingresa coordenada i destino: ");
        scanf("%d \n", &d_i);
        printf("Ingresa coordenada j destino: ");
        scanf("%d \n", &d_j);
        /*x ej el jugador ingresó: o_i  = 0, o_j = 1*/

        //Entonces:
        bosque[o_i][o_j]= ' '; //hacemos que en la posicion origen no haya nada
        bosque[d_i][d_j]= '2'; //Movemos el jugador a la posicion destino

    }
        else if(accion == 't')
        {
            do
            {
               bosque[d_i][d_j]='t';
            }
                while(bosque[d_i][d_j]!='X');

        }
            else
            {
                printf("Accion incorrecta \n");
            }

}


int ganador()
{
   jugar();
   return 0;
}


char fin_juego()
{
   char salir;

   do
   {
      printf("Desea salir del programa (s/n)?:");
      scanf(" %c", &salir);
   }
        while((salir != 's') || (salir != 'S'));

   return 0;
}


Yo se que el profesor nos enseñó que las matrices tienen que ser fijas (por lo menos este 1er año) pero me enlió peor :|
#17
Buenas, hastá acá fui tratando de hacer, aunque hasta que corrija los errores no me lo deja probar (no se si porque estoy en Linux -estoy en clase-, porque en windows me lo deja probar)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//prototipos
void menu();
int ingrese_opcion();
char jugar();
void reglas();
void bosques();
void error();
void pausa();
void turno_jugador1();
void turno_jugador2();
void flechazos();
int ganador();
char fin_juego();


int main()
{
     int opcion;

        do
        {
            menu();
            opcion=ingrese_opcion();
            switch (opcion)
            {
               case 1:
                   jugar();
                   break;
               case 2:
                   reglas();
                   break;
               case 3:
                    fin_juego();

                default:
                   error();
            }
        }
        while (opcion!=3);
    return 0;
}

void menu()
{
    printf("______ARQUEROS EN EL BOSQUE_______\n");
    printf("____________OOOOOO________________\n");
    printf("_________OOOOOOOOOOOOO____________\n");
    printf("_____OOOOOOOOOOOOOOOOOOOO_________\n");
    printf("___OOOOOOOOOOOOOOOOOOOOOOOO_______\n");
    printf("___OOOOOOOOOOOOOOOOOOOOOOOO_______\n");
    printf("_____OOOOOOOOOOOOOOOOOOOO_________\n");
    printf("______OOOOOOOOOOOOOOOOOO__________\n");
    printf("_________OOOOOOOOOOOO_____________\n");
    printf("__<----____OOOOOOOO_______________\n");
    printf("_____________OOOO_________________\n");
    printf("_____________OOOO_______---->_____\n");
    printf("_____________OOOO_________________\n");
    printf("_____________OOOO_________________\n");
    printf("\n");
    printf("MENU PRINCIPAL\n");
    printf("><><><><><><><\n");
    printf("Ingrese una de las opciones: \n");
    printf("1. Jugar\n");
    printf("2.Ver reglas\n");
    printf("\n");
}

int ingrese_opcion()
{
    int opcion;
    scanf(" %d",&opcion);
    return opcion;
}

char jugar()
{
    system("clear");
    bosques();
    pausa();

    return 0;
}

void reglas() //aca muestro las reglas. tiene que poder volver al menu anterior
{
    system("clear");
    printf("El juego consiste en eliminar al arquero del extremo opuesto. \n");
    printf("Cada turno puede elegir moverse una casilla en sentido horizontal o vertical o lanzar un flechazo. \n");
    printf("Los flechazos se mueven en linea recta, maximo cinco lugares.\n");
    printf("Ni los jugadores ni los flechazos pueden atravezar los arboles(X)");
    printf(" Al recibir un flechazo el jugador pierde el round, las partidas se componen de 3 round y las gana el que gane 2 de ellos.\n");
    printf("Jugador primero sera identificado como 1 y jugador segundo como 2.\n");
    printf("\n");
    pausa();

}

void bosques()
{
   int tam=1;

   printf("Ingrese tamanio(6,8,10,14 o 18): ");
   scanf(" %d", &tam);

   char bosque[tam][tam];

   //mostrar jugadores 1 y 2
        bosque[0][0]='1';
        bosque[tam-1][tam-1]='2';

   int i,j;

   //Iniciando los valores del bosque a ' '
   for(i=0;i<tam;i++)
       for(j=0;j<tam;j++)
           bosque[i][j]=' ';



   //generando las 3 X aleatoriamente
   srand (time(NULL));
   int Xnum=0; //contador
   while(Xnum<tam/2)//hasta que aparezcan la cantidad de X

    {
       i=rand()%tam;
       j=rand()%tam;

    if(bosque[i][j]!='X' && bosque[i][j]!='1' && bosque[i][j]!='2')//verifica que no haya X en esa posicion
       {
           bosque[i][j]='X';   //dibuja una X
           Xnum++; //para no dibujar mas X de las que deben ser
       }

   }

   //mostrar bosque
   printf("\n  ");

   for (j=0;j<tam;j++) //filas alfabeticas
       printf("  %c", 'a'+j);
   printf("\n");

   for (i=0;i<tam;i++) //columnas numeradas
    {
       printf(" %d", i);

       for (j=0;j<tam;j++)
        {
          printf("| %c", bosque[i][j]);
        }
       printf("| \n");
     }

}

void error()
{
    printf("El tamaño elegido no es correcto.\n");
    pausa();
}

void pausa()
{
    char p;
    printf ("Presiona cualquier tecla y enter para volver al menu");
    scanf (" %c",&p);
}

void mover_jugadores()
{
        int jugador, jugadas, turno;
    printf("Elige quien empieza (jugador 1 o 2): ");

    switch(jugadas)
    {
        case 1:
          jugador=1;
          turno=0;
               do
                {
                    turno++;
                    if (jugador)
                    {
                        turno_jugador1();
                    }
                        else
                            turno_jugador2();

                }
           while ((!ganador())&&(turno<=3));
    }
}

void turno_jugador1() //movimientos de jugador 1
{
    char accion;

    printf("Moverte o tirar flecha? (m o t)");
    scanf(" %c", &accion);

    //para saber lo que ha ingresado
    if(accion == 'm')
    {
         //moverse
        int o_i,o_j; //coordenadas origen
        int d_i,d_j; //coordenadas destino



        printf("Ingresa coordenada i origen: ");
        scanf("%d \n", &o_i);
        printf("Ingresa coordenada j origen: ");
        scanf("%d \n", &o_j);
        /*x ej el jugador ingresó: o_i  = 0, o_j = 0*/

        printf("Ingresa coordenada i destino: ");
        scanf("%d \n", &d_i);
        printf("Ingresa coordenada j destino: ");
        scanf("%d \n", &d_j);
        /*x ej el jugador ingresó: o_i  = 0, o_j = 1*/

        //Entonces:
        bosque[o_i][o_j]= ' '; //hacemos que en la posicion origen no haya nada
        bosque[d_i][d_j]= '1'; //Movemos el jugador a la posicion destino

    }
        else if(accion == 't')
        {
            do
            {
               bosque[d_i][d_j]='t';
            }
                while(bosque[d_i][d_j]!='X');

        }
            else
            {
                printf("Accion incorrecta \n");
            }

     bosques();
}

void turno_jugador2() //movimientos de jugador 1
{

    char accion;

    printf("Moverte o tirar flecha? (m o t)");
    scanf(" %c", &accion);

    //para saber lo que ha ingresado
    if(accion == 'm')
    {
         //moverse
        int o_i,o_j; //coordenadas origen
        int d_i,d_j; //coordenadas destino



        printf("Ingresa coordenada i origen: ");
        scanf("%d \n", &o_i);
        printf("Ingresa coordenada j origen: ");
        scanf("%d \n", &o_j);
        /*x ej el jugador ingresó: o_i  = 0, o_j = 0*/

        printf("Ingresa coordenada i destino: ");
        scanf("%d \n", &d_i);
        printf("Ingresa coordenada j destino: ");
        scanf("%d \n", &d_j);
        /*x ej el jugador ingresó: o_i  = 0, o_j = 1*/

        //Entonces:
        bosque[o_i][o_j]= ' '; //hacemos que en la posicion origen no haya nada
        bosque[d_i][d_j]= '2'; //Movemos el jugador a la posicion destino

    }
        else if(accion == 't')
        {
            do
            {
               bosque[d_i][d_j]='t';
            }
                while(bosque[d_i][d_j]!='X');

        }
            else
            {
                printf("Accion incorrecta \n");
            }

     bosques();
}


int ganador()
{
   jugar();
   return 0;
}


char fin_juego()
{
   char salir;

   do
   {
      printf("Desea salir del programa (s/n)?:");
      scanf(" %c", &salir);
   }
        while((salir != 's') || (salir != 'S'));

   return 0;
}


Y los errores:

228|error: 'bosque' no se declaró aquí (primer uso en esta función)|
228|nota: cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece|
236|error: 'd_i' no se declaró aquí (primer uso en esta función)|
236|error: 'd_j' no se declaró aquí (primer uso en esta función)|
279|error: 'bosque' no se declaró aquí (primer uso en esta función)|
287|error: 'd_i' no se declaró aquí (primer uso en esta función)|
287|error: 'd_j' no se declaró aquí (primer uso en esta función)|
||=== Build finished: 7 errors, 0 warnings ===|

#18
Hola! Pensé que me estaba contestando otra persona al principio porque cambias mucho la imagen jaja (Mushishi está genial!).

Entendí si, gracias por explicar tan pacientemente, me cuesta mucho entrar en la lógica del tablero, osea ahora que me lo dices lo entiendo pero irme dando cuenta sola del tema de los índices no iba a pasar :|

El juego lo tengo que entregar hasta el lunes a la medianoche. Pero este fin de semana me lo voy a dedicar entero a eso, para que quede bien.

Algo que está mal me parece es el if que me planteas:

CitarLuego para que no se genere una X en esas posiciones:
Código

    if( bosque[i][j]!='X' && bosque[i][j]!='1' && && bosque[i][j]!='2'){ //verifica que no haya X en esa posicion}

Me sale un error que se espera un identificador antes del &&, supongo que por poner 2 && juntos.

Voy a seguir tratando de ir arreglandolo con lo que me has planteado y cuando tenga más lo subo.

Gracias :)
#19
Esto es un poco lo que estoy tratando de hacer, ya le cambié los nombres al tablero que no es más que un bosque donde 2 jugadores se tienen que eliminar:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//prototipos
void menu();
int ingrese_opcion();
char jugar();
void reglas();
void bosques();
void error();
void pausa();
void mover_jugadores();
void flechazos();
void ultima_jugada();

int main()
{
    int opcion;

       do
       {
           menu();
           opcion=ingrese_opcion();
           switch (opcion)
           {
              case 1:
                  jugar();
                  break;
              case 2:
                  reglas();
                  break;

               default:
                  error();
           }
       }
       while (opcion!=2);
   return 0;
}

void menu()
{
   printf("______ARQUEROS EN EL BOSQUE_______\n");
   printf("____________OOOOOO________________\n");
   printf("_________OOOOOOOOOOOOO____________\n");
   printf("_____OOOOOOOOOOOOOOOOOOOO_________\n");
   printf("___OOOOOOOOOOOOOOOOOOOOOOOO_______\n");
   printf("___OOOOOOOOOOOOOOOOOOOOOOOO_______\n");
   printf("_____OOOOOOOOOOOOOOOOOOOO_________\n");
   printf("______OOOOOOOOOOOOOOOOOO__________\n");
   printf("_________OOOOOOOOOOOO_____________\n");
   printf("__<----____OOOOOOOO_______________\n");
   printf("_____________OOOO_________________\n");
   printf("_____________OOOO_______---->_____\n");
   printf("_____________OOOO_________________\n");
   printf("_____________OOOO_________________\n");
   printf("\n");
   printf("MENU PRINCIPAL\n");
   printf("><><><><><><><\n");
   printf("Ingrese una de las opciones: \n");
   printf("1. Jugar\n");
   printf("2.Ver reglas\n");
   printf("\n");
}

int ingrese_opcion()
{
   int opcion;
   scanf(" %d",&opcion);
   return opcion;
}

char jugar()
{
   system("cls");
   bosques();
   pausa();
   return bosques;
}

void reglas() //aca muestro las reglas. tiene que poder volver al menu anterior
{
   system("cls");
   printf("El juego consiste en eliminar al arquero del extremo opuesto. \n");
   printf("Cada turno puede elegir moverse una casilla en sentido horizontal o vertical o lanzar un flechazo. \n");
   printf("Los flechazos se mueven en linea recta, maximo cinco lugares.\n");
   printf("Ni los jugadores ni los flechazos pueden atravezar los arboles(X)");
   printf(" Al recibir un flechazo el jugador pierde el round, las partidas se componen de 3 round y las gana el que gane 2 de ellos.\n");
   printf("Jugador primero sera identificado como 1 y jugador segundo como 2.\n");
   printf("\n");
   pausa();

}

void bosques()
{
  int tam=1;

  printf("Ingrese tamanio(6,8,10,14 o 18): ");
  scanf(" %d", &tam);

  char bosque[tam][tam];

  int i,j;

  //Iniciando los valores del bosque a ' '
  for(i=0;i<tam;i++)
      for(j=0;j<tam;j++)
          bosque[i][j]=' ';

    //mostrar jugadores 1 y 2
   if( bosque[0][j]=' ')
       {
           bosque[0][j]='1';
       }

   if( bosque[tam][i]!=' ')
       {
          bosque[tam][i]='1';
       }

  //generando las 3 X aleatoriamente
  srand (time(NULL));
  int Xnum=0; //contador
  while(Xnum<tam/2){ //hasta que aparezcan la cantidad de X

      i=rand()%tam;
      j=rand()%tam;

      if( bosque[i][j]!='X'){ //verifica que no haya X en esa posicion
          bosque[i][j]='X';   //dibuja una X
          Xnum++; //para no dibujar mas X de las que deben ser
      }

  }

  //mostrar bosque
  printf("\n  ");

  for (j=0;j<tam;j++) //filas alfabeticas
      printf("  %c", 'a'+j);
  printf("\n");

  for (i=0;i<tam;i++) //columnas numeradas
   {
      printf(" %d", i);

      for (j=0;j<tam;j++)
       {
         printf("| %c", bosque[i][j]);
       }
      printf("| \n");
    }

}

void error()
{
   printf("El tamaño elegido no es correcto.\n");
   pausa();
}

void pausa()
{
   char p;
   printf ("Presiona cualquier tecla y enter para volver al menu");
   scanf (" %c",&p);
}

void mover_jugadores()
{
       int jugador, jugadas, turno;
   printf("Elige quien empieza (jugador 1 o 2): ");

   switch(jugadas)
   {
       case 1:
          jugador=1;
          turno=0;
              do
               {
                   turno++;
                   if (jugador)
                   {
                       turno_jugador1();
                   }
                       else
                           turno_jugador2();

               }
          while ((!ganador())&&(turno<=3));
   }
}

void turno_jugador1() //movimientos de jugador 1
{
    int accion,
    char m=0;
    char t=0; // mover o tirar
    char coordenada_elegida;
    printf("Moverte o tirar flecha? (m o t)");
    scanf("%d",&accion);

       if (accion==m)
       {
           printf("Elige coordenada: ");
           scanf(" %c", &coordenada_elegida);

           if(bosque[i][j]!='X')
           {
               bosque[i][j]==' ';
               bosque[i][j]=='1';
           }
               else if (accion==T)
               {
                   printf("Hasta donde va a disparar el flechazo? (maximo 5 lugares)");
               }
    }
    bosques();
}

void turno_jugador2() //movimientos de jugador 1
{
    int accion,
    char m=0;
    char t=0; // mover o tirar
    char coordenada_elegida;
    printf("Moverte o tirar flecha? (m o t)");
    scanf("%d",&accion);

       if (accion==m)
       {
           printf("Elige coordenada: ");
           scanf(" %c", &coordenada_elegida);

           if(bosque[i][j]!='X')
           {
               bosque[i][j]==' ';
               bosque[i][j]=='1';
           }
               else if (accion==T)
               {
                   printf("Hasta donde va a disparar el flechazo? (maximo 5 lugares)");
               }
    }
    bosques();
}

int ganador()
{
  return ganador;
}


(se que hay muchas cosas que no "coinciden" porque no se las he cambiado aun, como prototipos, etc.)
Ahí cambié el tipo de las variables y las inicializé. Ahora estoy tratando de entender bien como puedo hacer para que el jugador me ingrese una coordenada y yo tomar esa coordenada como una cadena de caracteres supongo y usarlas para que avance. O sino disparar, y entonces desde su posicion se disparen los flechazos. Voy a seguir intentando
#20
Buenas! Ahora estoy tratando de hacer que los jugadores se muevan o disparen (inician cada uno en una esquina superior e inferior del tablero) y tengo algo así:

void turno_jugador1() //movimientos de jugador 1
{
    int accion, m,t; // mover o tirar
    char coordenada_elegida;
    printf("Moverte o tirar flecha? (m o t)");
    scanf("%d",&accion);

       if (accion==m)
       {
           printf("Elige coordenada: ");
           scanf(" %c", &coordenada_elegida);

           if(tablero[i][j]!='X')
           {
               tablero[i][j]==' ';
               tablero[i][j]=='1';
           }
               else if (accion==t)
               {
                   printf("Hasta donde va a disparar el flechazo? (maximo 5 lugares)"); //las flechas se disparan 5 lugares y en los cuatro sentidos, arriba, abajo y costados)
               }
    }
}


Pero creo que no puedo empezar bien a jugar porque no me está saliendo colocar a los jugadores en donde van desde el principio, quise hacer esto:

//mostrar jugadores 1 y 2
    if( tablero[0][j]=' ')
        {
            tablero[0][j]='1';
        }

    if( tablero[tam][i]!=' ')
        {
           tablero[tam][i]='1';
        }


Que estará mal :| Ni me aparecen en el tablero