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 - 0xFer

#321
se ve interesante, gracias por el aporte  :laugh:
#322
Es correcto lo que dice @Regexp, pero ese código no debería de ír ahí, debería estar aquí:


void Bucle_Juego()
{
   int ganador = 0;
   int turno = 1; //empieza jugador 1

   while(ganador == 0){ //que se repita mientras no haya ningun ganador

       Actualizar_Juego(); //Actualiza el juego

       Mov_Attack(turno); //mueve o ataca  

       /*Falta un codigo para comprobar si alguien ya ha ganado*/

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

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

}


justo antes de entrar al bucle del juego(el while(ganador == 0)), fíjate que he declarado una variable llamada turno y la he iniciado a 1.

Ahora el segundo error creo que está en bosque6x6!='X', ya que bosque6x6 es un arreglo pero no puedes comparar un arreglo directamente con un 'X' tienes que acceder a los indices del arreglo, así como ya has hecho muchas veces, ejemplo:
bosque6x6[0][3], solo entonces podrás hacer ese tipo de comparaciones.

Nota: Un arreglo también es un puntero, como dice @Regexp; es una dirección de memória.

#323
Java / Re: Dudas respecto a Android Studio
6 Junio 2015, 03:05 AM
Te recomiendo este libro: http://www.ehu.eus/biografiaparlamentarios/publicaciones/Android.pdf

yo llevé un curso de Android en la escuela y lo utilizamos mucho. ;D

Cita de: ElInquisidor en  4 Junio 2015, 23:22 PM
Otra cosa

como ofusco codigo en android studio...

Ofuscar código significa hacer que éste no se entienda pero utilizando poderosos algoritmos con pocas lineas de código, no sé si eso es lo que quieres hacer.
#324
Con el printf no hay diferencias, pero si con scanf, el %d es para decimal, el %i funcional igual además de soportar números hexadecimanles y octales, cuando utilizas el %i creo que hay más código de por medio en el ejecutable(no estoy seguro), asi que lo correcto es utilizar el %d si sabes de ante mano que estas trabajando solo con enteros.

jaja yo siempre suelo utilizar el %i pero no es correcto, es mejor utilizar el %d, siempre y cuando no estes trabajando con hexa u octal.
#326
jeje perdona la demora pero vi tu mensaje 6 horas depués de que lo publicaste.

mm, la verdad es que será muy difícil que te diga cómo corregir lo que ya tienes, asi que te doy un nitro:


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

/*Prototipos*/
void menu();
void reglas();
void fin_juego();

void Select_Bosque();
void Iniciar_Bosque();
void Actualizar_Juego();
void Bucle_Juego();

void Mov_Attack(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: Select_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("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");
  char p;
  printf ("Presiona cualquier tecla y enter para volver al menu ");
  scanf (" %c",&p);
}

void fin_juego()
{
   system("clear");
   printf("\n\n\n\t\t!!GRACIAS POR JUGAR!!!\n\n\n");
}

void Select_Bosque()
{
 
  system("clear");
  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(elije_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;
  }
 
}
/*Ponemos los 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("clear");
   
   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++)
           {
               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");
       }
   }
   
}

/****BUCLE DEL JUEGO****/
void Bucle_Juego()
{
   int ganador = 0;
   int turno = 1; //empieza jugador 1
   
   while(ganador == 0){ //que se repita mientras no haya ningun ganador
   
       Actualizar_Juego(); //Actualiza el juego
       
       Mov_Attack(turno); //mueve o ataca  
       
       /*Falta un codigo para comprobar si alguien ya ha ganado*/
       
       /*Cambiando los turnos*/
       if(turno == 1)
           turno = 2;
       else
           turno = 1;
   }
   
   /*cuando se termine el bucle comprobamos quien ha ganado*/
   if(ganador == 1){
       printf("Ha Ganado el jugador 1");
   }
   else if(ganador == 2)
       printf("Ha Ganado el jugador 2");

}

void Mov_Attack(int turno)
{
   char imagen_jugador; //para dibujar un '1' o un '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(enteros)
  char o_j,d_j;  //coordenadas destino(letras)
 
  printf("Moverte o tirar flecha? (m o t)");
  scanf(" %c", &accion);

  //para saber lo que ha ingresado
  if(accion == 'm')
  {
      printf("Ingresa coordenada vertical origen(numero): ");
      scanf(" %d", &o_i); //pedimos un entero
      printf("Ingresa coordenada horizontal origen(letra): ");
      scanf(" %c", &o_j); //depimos un char
     
      printf("Ingresa coordenada vertical destino(numero): ");
      scanf(" %d", &d_i); //pedimos un entero
      printf("Ingresa coordenada horizontal destino(letra): ");
      scanf(" %c", &d_j); //pedimos un char
     
      /*Dependiendo del tamaño del bosque*/
      if( tam_bosque == 6)
      {
          bosque6x6[o_i][o_j - 97]= ' ';
          bosque6x6[d_i][d_j - 97]= imagen_jugador;
      }
      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')
  {
      /*ALGORITMO PARA TIRAR FLECHAZO*/
  }
  else
  {
       printf("Accion incorrecta \n");
  }

}




solo falta hacer el algoritmo para tirar flechas
#327
Sube algo de código para que te podamos ayudar si es posible  :-\
#328
Ese continue en tu código hace que no se imprima x siempre y cuando (x%2) sea diferente a cero...

El continue es solamente para pasar a la siguiente iteración del bucle.
#329
Ah no me dí cuenta que puse 2 & de más.  :P
#330
No se necesitas las etiquetas GeSHI en CodeBlocks, para utilizarlo en el foro:

http://i.imgur.com/CtgvjOI.png

es la firma de Elecktro