Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: josemanuelbarajas998 en 14 Mayo 2017, 07:56 am



Título: Gato en 3D
Publicado por: josemanuelbarajas998 en 14 Mayo 2017, 07:56 am
Buenas, tengo que hacer proyecto del juego del gato en C, tengo que hacer un nivel imposible donde solo gana la PC.
Esto llevo hasta ahorita:
https://pastebin.com/QR5jHfYz


Título: Re: Gato en 3D
Publicado por: engel lex en 14 Mayo 2017, 17:58 pm
tu digo algo... tu codigo es casi ilegible son 1500 lineas de condicionales... con ciclos y matemática te hubieras ahorrado por lo menos 1000lineas

Código
  1.        switch(x)
  2.        {
  3.        case 'a':
  4.            i=0; j=0; k=0;
  5.            if(a[i][j][k]=='X' || a[i][j][k]=='O')
  6.            {
  7.                ocupado++;
  8.                printf("Ingrese otro caracter distinto a 'a'!\n");
  9.                system("pause");
  10.            }
  11.        break;

ahí puedes ajustar 'a' como 0 y avanzar desde allí transformando a ternario

Código
  1.  base = x-'a';
  2.  int i, salida[3];
  3.  for(i=2; i>=0; i--){
  4.    salida[i] = base%3;
  5.    base/=3;
  6.  }
  7.  

si hubieras hecho algo así te ahorras todo el contenido de los  los switch... si te fijas, salida contiene tu posición en 3d... los if de comprobación va por los mismos tiros...

sin contar que creo que estas funciones hacen virutalmente lo mismo
Código:
void introducir_X_n1();
void introducir_X_nvsPC();
void introducir_O();
void introducir_O_IA();
void introducir_O_IA_n3();

justamente la intención de las funciones es no repetir código en lo posible

no te ayudo con tu solicitud ya que no tengo idea cual es el juego del gato y despues de intentar leer tu codigo, tanpoco pude deducirlo... pero espero que eso te ayude


Título: Re: Gato en 3D
Publicado por: MAFUS en 14 Mayo 2017, 20:07 pm
Jeje, es el 3 en Raya o el TaTeTi, Tic Tac Toe en inglés.