Ayuda con un programa de Gato 3D[Solucionado]

Iniciado por [LOH]lordofhell, Diciembre 06, 2014, 04:43:32 AM

Tema anterior - Siguiente tema

[LOH]lordofhell

Estoy haciendo una tarea de Gato 3D que es para el 15 de diciembre, y ya casi lo tengo listo, pero por el momento tengo dos problemas:

1-Tengo que implementar un menu para que elija si quiero iniciar el juego o imprimir un "acerca de" el juego, intente hacer un menu de prueba, pero se me reproduce infinitamente.

2-Tengo problemas grafico en el que varias "cordenadas" de la tabla inferior salen mal, y no tengo idea de porque.

hechenle un vistazo por favor:

#include <cstdlib>
#include <iostream>
#include <iomanip>
#define MAX 3

void declaracion(char [MAX][MAX]);
void impresion(char [MAX][MAX]);
void Insercionx(char [MAX][MAX], int, int, int &,int &);
void Inserciono(char [MAX][MAX], int, int, int &,int &);

using namespace std;

int main()
{
    int gato=0;
    int turno;
    int accion;
char Matriz1[MAX][MAX];
int cordenadax, cordenaday;
    declaracion(Matriz1);

    do{
    cout<<"Elija la opcion que quiere ejecutar: \n[0]-Iniciar juego.\n[3]-Acerca de.\n";
    cin>>accion;

    switch(accion){
    case 0: turno=1; break;
    case 1: cout<<" "; break;
    default: cout<<"Valor invalido\n"; break;}
    }while(turno!=0);

    do{
      impresion(Matriz1);

      if(gato==1){
         cout<<"\nGato, jugador 1 gana\n\n";
         system("PAUSE");
         return EXIT_SUCCESS;
         }

      if(gato==2){
         cout<<"\nGato, jugador 2 gana\n\n";
         system("PAUSE");
         return EXIT_SUCCESS;
         }

      if(turno==1){
      cout<<"Jugador 1 escriba las cordenada en las que quiere colocar la X,\nque sean de 0 a 8:\nCordenada del renglon: ";
      cin>>cordenadax;
      cout<<"Cordenada de la columna: ";
      cin>>cordenaday;

      if(cordenadax<0 || cordenadax>8 || cordenaday<0 || cordenaday>8) cout<<"\nvalor invalido\n\n";

      Insercionx(Matriz1,cordenadax,cordenaday, gato, turno);
      }

      /*if(turno==2){
      cout<<"Jugador 2 escriba las cordenada en las que quiere colocar la O,\nque sean de 0 a 8:\nCordenada del renglon: ";
      cin>>cordenadax;
      cout<<"Cordenada de la columna: ";
      cin>>cordenaday;

      if(cordenadax<0 || cordenadax>8 || cordenaday<0 || cordenaday>8) cout<<"\nvalor invalido\n\n";

      Inserciono(Matriz1,cordenadax,cordenaday, gato, turno);
      }*/

      }while (gato!=0);

    impresion(Matriz1);


    system("PAUSE");
    return EXIT_SUCCESS;
}

///////////////////////////////////////////////////////////////
void declaracion(char A[MAX][MAX])
{
    for(int i=0;i<9;++i){
        for(int j=0;j<9;++j){
            A[i][j]='.';
            }
    }

}
/////////////////////////////////////////////////////
void impresion(char A[MAX][MAX])
{
   cout<<"Tabla Superior:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=0;i<3;++i){
            cout<<i<<' '<<char(179);
             for(int j=0;j<3;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;

     ////////////////////////////

     cout<<"Tabla Media:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z+3;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=3;i<6;++i){
            cout<<i<<' '<<char(179);
             for(int j=3;j<6;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;

     ////////////////////////////////

     cout<<"Tabla Inferior:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z+6;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=6;i<9;++i){
            cout<<i<<' '<<char(179);
             for(int j=6;j<9;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;
}
///////////////////////////////////////////////////////////////////
void Insercionx(char A[MAX][MAX], int x, int y,int &gato,int &turno)
{
    if(A[x][y]=='X' || A[x][y]=='O') cout<<"\ncordenada ya tomada, vuelva a intentarlo en su siguiente turno\n\n";
    A[x][y]='X';
    //tabla superior
    if(A[0][0]=='X' && A[0][1]=='X' && A[0][2]=='X') gato=1;
    if(A[1][0]=='X' && A[1][1]=='X' && A[1][2]=='X') gato=1;
    if(A[2][0]=='X' && A[2][1]=='X' && A[2][2]=='X') gato=1;
    if(A[0][0]=='X' && A[1][0]=='X' && A[2][0]=='X') gato=1;
    if(A[0][1]=='X' && A[1][1]=='X' && A[2][1]=='X') gato=1;
    if(A[0][2]=='X' && A[1][2]=='X' && A[2][2]=='X') gato=1;
    if(A[0][0]=='X' && A[1][1]=='X' && A[2][2]=='X') gato=1;
    if(A[2][0]=='X' && A[1][1]=='X' && A[0][2]=='X') gato=1;
    //Tabla media
    if(A[3][3]=='X' && A[3][4]=='X' && A[3][5]=='X') gato=1;
    if(A[4][3]=='X' && A[4][4]=='X' && A[4][5]=='X') gato=1;
    if(A[5][3]=='X' && A[5][4]=='X' && A[5][5]=='X') gato=1;
    if(A[3][3]=='X' && A[4][3]=='X' && A[5][3]=='X') gato=1;
    if(A[3][4]=='X' && A[4][4]=='X' && A[5][4]=='X') gato=1;
    if(A[3][5]=='X' && A[4][5]=='X' && A[5][5]=='X') gato=1;
    if(A[3][3]=='X' && A[4][4]=='X' && A[5][5]=='X') gato=1;
    if(A[5][3]=='X' && A[4][4]=='X' && A[3][5]=='X') gato=1;
    //tabla inferior
    if(A[6][6]=='X' && A[6][7]=='X' && A[6][8]=='X') gato=1;
    if(A[7][6]=='X' && A[7][7]=='X' && A[7][8]=='X') gato=1;
    if(A[8][6]=='X' && A[8][7]=='X' && A[8][8]=='X') gato=1;
    if(A[6][6]=='X' && A[7][6]=='X' && A[8][6]=='X') gato=1;
    if(A[7][6]=='X' && A[7][7]=='X' && A[7][8]=='X') gato=1;
    if(A[6][8]=='X' && A[7][8]=='X' && A[8][8]=='X') gato=1;
    if(A[6][6]=='X' && A[7][7]=='X' && A[8][8]=='X') gato=1;
    if(A[8][6]=='X' && A[7][7]=='X' && A[6][8]=='X') gato=1;
    //verticales
    if(A[0][0]=='X' && A[3][3]=='X' && A[6][6]=='X') gato=1;
    if(A[0][1]=='X' && A[3][4]=='X' && A[6][7]=='X') gato=1;
    if(A[0][2]=='X' && A[3][5]=='X' && A[6][8]=='X') gato=1;
    if(A[1][0]=='X' && A[4][3]=='X' && A[7][6]=='X') gato=1;
    if(A[1][1]=='X' && A[4][4]=='X' && A[7][7]=='X') gato=1;
    if(A[1][2]=='X' && A[4][5]=='X' && A[7][8]=='X') gato=1;
    if(A[2][0]=='X' && A[5][3]=='X' && A[8][6]=='X') gato=1;
    if(A[2][1]=='X' && A[5][4]=='X' && A[8][7]=='X') gato=1;
    if(A[2][2]=='X' && A[5][5]=='X' && A[8][8]=='X') gato=1;
    //Cruzados 3D
    if(A[0][2]=='X' && A[4][3]=='X' && A[6][6]=='X') gato=1;
    if(A[0][0]=='X' && A[4][4]=='X' && A[8][8]=='X') gato=1;
    if(A[0][2]=='X' && A[4][4]=='X' && A[8][6]=='X') gato=1;
    if(A[2][0]=='X' && A[4][4]=='X' && A[6][8]=='X') gato=1;
    //laterales 3D 0,3,6
    if(A[0][0]=='X' && A[3][4]=='X' && A[6][8]=='X') gato=1;
    if(A[0][2]=='X' && A[4][4]=='X' && A[6][6]=='X') gato=1;
    //Laterales 3D 1,4,7
    if(A[1][0]=='X' && A[4][4]=='X' && A[7][8]=='X') gato=1;
    if(A[7][6]=='X' && A[4][4]=='X' && A[1][2]=='X') gato=1;
    //laterales 3D 2,5,8
    if(A[2][0]=='X' && A[5][4]=='X' && A[8][8]=='X') gato=1;
    if(A[2][2]=='X' && A[4][4]=='X' && A[8][6]=='X') gato=1;

    turno=2;
}
//////////////////////////////////////////////////////////////////
void Inserciono(char A[MAX][MAX], int x, int y,int &gato,int &turno)
{
    if(A[x][y]=='X' || A[x][y]=='O') cout<<"\ncordenada ya tomada, vuelva a intentarlo en su siguiente turno\n\n";
    A[x][y]='O';
    //tabla superior
    if(A[0][0]=='O' && A[0][1]=='O' && A[0][2]=='O') gato=1;
    if(A[1][0]=='O' && A[1][1]=='O' && A[1][2]=='O') gato=1;
    if(A[2][0]=='O' && A[2][1]=='O' && A[2][2]=='O') gato=1;
    if(A[0][0]=='O' && A[1][0]=='O' && A[2][0]=='O') gato=1;
    if(A[0][1]=='O' && A[1][1]=='O' && A[2][1]=='O') gato=1;
    if(A[0][2]=='O' && A[1][2]=='O' && A[2][2]=='O') gato=1;
    if(A[0][0]=='O' && A[1][1]=='O' && A[2][2]=='O') gato=1;
    if(A[2][0]=='O' && A[1][1]=='O' && A[0][2]=='O') gato=1;
    //Tabla media
    if(A[3][3]=='O' && A[3][4]=='O' && A[3][5]=='O') gato=1;
    if(A[4][3]=='O' && A[4][4]=='O' && A[4][5]=='O') gato=1;
    if(A[5][3]=='O' && A[5][4]=='O' && A[5][5]=='O') gato=1;
    if(A[3][3]=='O' && A[4][3]=='O' && A[5][3]=='O') gato=1;
    if(A[3][4]=='O' && A[4][4]=='O' && A[5][4]=='O') gato=1;
    if(A[3][5]=='O' && A[4][5]=='O' && A[5][5]=='O') gato=1;
    if(A[3][3]=='O' && A[4][4]=='O' && A[5][5]=='O') gato=1;
    if(A[5][3]=='O' && A[4][4]=='O' && A[3][5]=='O') gato=1;
    //tabla inferior
    if(A[6][6]=='O' && A[6][7]=='O' && A[6][8]=='O') gato=1;
    if(A[7][6]=='O' && A[7][7]=='O' && A[7][8]=='O') gato=1;
    if(A[8][6]=='O' && A[8][7]=='O' && A[8][8]=='O') gato=1;
    if(A[6][6]=='O' && A[7][6]=='O' && A[8][6]=='O') gato=1;
    if(A[7][6]=='O' && A[7][7]=='O' && A[7][8]=='O') gato=1;
    if(A[6][8]=='O' && A[7][8]=='O' && A[8][8]=='O') gato=1;
    if(A[6][6]=='O' && A[7][7]=='O' && A[8][8]=='O') gato=1;
    if(A[8][6]=='O' && A[7][7]=='O' && A[6][8]=='O') gato=1;
    //verticales
    if(A[0][0]=='O' && A[3][3]=='O' && A[6][6]=='O') gato=1;
    if(A[0][1]=='O' && A[3][4]=='O' && A[6][7]=='O') gato=1;
    if(A[0][2]=='O' && A[3][5]=='O' && A[6][8]=='O') gato=1;
    if(A[1][0]=='O' && A[4][3]=='O' && A[7][6]=='O') gato=1;
    if(A[1][1]=='O' && A[4][4]=='O' && A[7][7]=='O') gato=1;
    if(A[1][2]=='O' && A[4][5]=='O' && A[7][8]=='O') gato=1;
    if(A[2][0]=='O' && A[5][3]=='O' && A[8][6]=='O') gato=1;
    if(A[2][1]=='O' && A[5][4]=='O' && A[8][7]=='O') gato=1;
    if(A[2][2]=='O' && A[5][5]=='O' && A[8][8]=='O') gato=1;
    //Cruzados 3D
    if(A[0][2]=='O' && A[4][3]=='O' && A[6][6]=='O') gato=1;
    if(A[0][0]=='O' && A[4][4]=='O' && A[8][8]=='O') gato=1;
    if(A[0][2]=='O' && A[4][4]=='O' && A[8][6]=='O') gato=1;
    if(A[2][0]=='O' && A[4][4]=='O' && A[6][8]=='O') gato=1;
    //laterales 3D 0,3,6
    if(A[0][0]=='O' && A[3][4]=='O' && A[6][8]=='O') gato=1;
    if(A[0][2]=='O' && A[4][4]=='O' && A[6][6]=='O') gato=1;
    //Laterales 3D 1,4,7
    if(A[1][0]=='O' && A[4][4]=='O' && A[7][8]=='O') gato=1;
    if(A[7][6]=='O' && A[4][4]=='O' && A[1][2]=='O') gato=1;
    //laterales 3D 2,5,8
    if(A[2][0]=='O' && A[5][4]=='O' && A[8][8]=='O') gato=1;
    if(A[2][2]=='O' && A[4][4]=='O' && A[8][6]=='O') gato=1;

    turno=1;
}

Lenin

Cita de: [LOH]lordofhell en Diciembre 06, 2014, 04:43:32 AM
Estoy haciendo una tarea de Gato 3D que es para el 15 de diciembre, y ya casi lo tengo listo, pero por el momento tengo dos problemas:

1-Tengo que implementar un menu para que elija si quiero iniciar el juego o imprimir un "acerca de" el juego, intente hacer un menu de prueba, pero se me reproduce infinitamente.

2-Tengo problemas grafico en el que varias "cordenadas" de la tabla inferior salen mal, y no tengo idea de porque.

hechenle un vistazo por favor:

#include <cstdlib>
#include <iostream>
#include <iomanip>
#define MAX 3

void declaracion(char [MAX][MAX]);
void impresion(char [MAX][MAX]);
void Insercionx(char [MAX][MAX], int, int, int &,int &);
void Inserciono(char [MAX][MAX], int, int, int &,int &);

using namespace std;

int main()
{
    int gato=0;
    int turno;
    int accion;
char Matriz1[MAX][MAX];
int cordenadax, cordenaday;
    declaracion(Matriz1);

    do{
    cout<<"Elija la opcion que quiere ejecutar: \n[0]-Iniciar juego.\n[3]-Acerca de.\n";
    cin>>accion;

    switch(accion){
    case 0: turno=1; break;
    case 1: cout<<" "; break;
    default: cout<<"Valor invalido\n"; break;}
    }while(turno!=0);

    do{
      impresion(Matriz1);

      if(gato==1){
         cout<<"\nGato, jugador 1 gana\n\n";
         system("PAUSE");
         return EXIT_SUCCESS;
         }

      if(gato==2){
         cout<<"\nGato, jugador 2 gana\n\n";
         system("PAUSE");
         return EXIT_SUCCESS;
         }

      if(turno==1){
      cout<<"Jugador 1 escriba las cordenada en las que quiere colocar la X,\nque sean de 0 a 8:\nCordenada del renglon: ";
      cin>>cordenadax;
      cout<<"Cordenada de la columna: ";
      cin>>cordenaday;

      if(cordenadax<0 || cordenadax>8 || cordenaday<0 || cordenaday>8) cout<<"\nvalor invalido\n\n";

      Insercionx(Matriz1,cordenadax,cordenaday, gato, turno);
      }

      /*if(turno==2){
      cout<<"Jugador 2 escriba las cordenada en las que quiere colocar la O,\nque sean de 0 a 8:\nCordenada del renglon: ";
      cin>>cordenadax;
      cout<<"Cordenada de la columna: ";
      cin>>cordenaday;

      if(cordenadax<0 || cordenadax>8 || cordenaday<0 || cordenaday>8) cout<<"\nvalor invalido\n\n";

      Inserciono(Matriz1,cordenadax,cordenaday, gato, turno);
      }*/

      }while (gato!=0);

    impresion(Matriz1);


    system("PAUSE");
    return EXIT_SUCCESS;
}

///////////////////////////////////////////////////////////////
void declaracion(char A[MAX][MAX])
{
    for(int i=0;i<9;++i){
        for(int j=0;j<9;++j){
            A[i][j]='.';
            }
    }

}
/////////////////////////////////////////////////////
void impresion(char A[MAX][MAX])
{
   cout<<"Tabla Superior:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=0;i<3;++i){
            cout<<i<<' '<<char(179);
             for(int j=0;j<3;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;

     ////////////////////////////

     cout<<"Tabla Media:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z+3;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=3;i<6;++i){
            cout<<i<<' '<<char(179);
             for(int j=3;j<6;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;

     ////////////////////////////////

     cout<<"Tabla Inferior:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z+6;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=6;i<9;++i){
            cout<<i<<' '<<char(179);
             for(int j=6;j<9;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;
}
///////////////////////////////////////////////////////////////////
void Insercionx(char A[MAX][MAX], int x, int y,int &gato,int &turno)
{
    if(A[x][y]=='X' || A[x][y]=='O') cout<<"\ncordenada ya tomada, vuelva a intentarlo en su siguiente turno\n\n";
    A[x][y]='X';
    //tabla superior
    if(A[0][0]=='X' && A[0][1]=='X' && A[0][2]=='X') gato=1;
    if(A[1][0]=='X' && A[1][1]=='X' && A[1][2]=='X') gato=1;
    if(A[2][0]=='X' && A[2][1]=='X' && A[2][2]=='X') gato=1;
    if(A[0][0]=='X' && A[1][0]=='X' && A[2][0]=='X') gato=1;
    if(A[0][1]=='X' && A[1][1]=='X' && A[2][1]=='X') gato=1;
    if(A[0][2]=='X' && A[1][2]=='X' && A[2][2]=='X') gato=1;
    if(A[0][0]=='X' && A[1][1]=='X' && A[2][2]=='X') gato=1;
    if(A[2][0]=='X' && A[1][1]=='X' && A[0][2]=='X') gato=1;
    //Tabla media
    if(A[3][3]=='X' && A[3][4]=='X' && A[3][5]=='X') gato=1;
    if(A[4][3]=='X' && A[4][4]=='X' && A[4][5]=='X') gato=1;
    if(A[5][3]=='X' && A[5][4]=='X' && A[5][5]=='X') gato=1;
    if(A[3][3]=='X' && A[4][3]=='X' && A[5][3]=='X') gato=1;
    if(A[3][4]=='X' && A[4][4]=='X' && A[5][4]=='X') gato=1;
    if(A[3][5]=='X' && A[4][5]=='X' && A[5][5]=='X') gato=1;
    if(A[3][3]=='X' && A[4][4]=='X' && A[5][5]=='X') gato=1;
    if(A[5][3]=='X' && A[4][4]=='X' && A[3][5]=='X') gato=1;
    //tabla inferior
    if(A[6][6]=='X' && A[6][7]=='X' && A[6][8]=='X') gato=1;
    if(A[7][6]=='X' && A[7][7]=='X' && A[7][8]=='X') gato=1;
    if(A[8][6]=='X' && A[8][7]=='X' && A[8][8]=='X') gato=1;
    if(A[6][6]=='X' && A[7][6]=='X' && A[8][6]=='X') gato=1;
    if(A[7][6]=='X' && A[7][7]=='X' && A[7][8]=='X') gato=1;
    if(A[6][8]=='X' && A[7][8]=='X' && A[8][8]=='X') gato=1;
    if(A[6][6]=='X' && A[7][7]=='X' && A[8][8]=='X') gato=1;
    if(A[8][6]=='X' && A[7][7]=='X' && A[6][8]=='X') gato=1;
    //verticales
    if(A[0][0]=='X' && A[3][3]=='X' && A[6][6]=='X') gato=1;
    if(A[0][1]=='X' && A[3][4]=='X' && A[6][7]=='X') gato=1;
    if(A[0][2]=='X' && A[3][5]=='X' && A[6][8]=='X') gato=1;
    if(A[1][0]=='X' && A[4][3]=='X' && A[7][6]=='X') gato=1;
    if(A[1][1]=='X' && A[4][4]=='X' && A[7][7]=='X') gato=1;
    if(A[1][2]=='X' && A[4][5]=='X' && A[7][8]=='X') gato=1;
    if(A[2][0]=='X' && A[5][3]=='X' && A[8][6]=='X') gato=1;
    if(A[2][1]=='X' && A[5][4]=='X' && A[8][7]=='X') gato=1;
    if(A[2][2]=='X' && A[5][5]=='X' && A[8][8]=='X') gato=1;
    //Cruzados 3D
    if(A[0][2]=='X' && A[4][3]=='X' && A[6][6]=='X') gato=1;
    if(A[0][0]=='X' && A[4][4]=='X' && A[8][8]=='X') gato=1;
    if(A[0][2]=='X' && A[4][4]=='X' && A[8][6]=='X') gato=1;
    if(A[2][0]=='X' && A[4][4]=='X' && A[6][8]=='X') gato=1;
    //laterales 3D 0,3,6
    if(A[0][0]=='X' && A[3][4]=='X' && A[6][8]=='X') gato=1;
    if(A[0][2]=='X' && A[4][4]=='X' && A[6][6]=='X') gato=1;
    //Laterales 3D 1,4,7
    if(A[1][0]=='X' && A[4][4]=='X' && A[7][8]=='X') gato=1;
    if(A[7][6]=='X' && A[4][4]=='X' && A[1][2]=='X') gato=1;
    //laterales 3D 2,5,8
    if(A[2][0]=='X' && A[5][4]=='X' && A[8][8]=='X') gato=1;
    if(A[2][2]=='X' && A[4][4]=='X' && A[8][6]=='X') gato=1;

    turno=2;
}
//////////////////////////////////////////////////////////////////
void Inserciono(char A[MAX][MAX], int x, int y,int &gato,int &turno)
{
    if(A[x][y]=='X' || A[x][y]=='O') cout<<"\ncordenada ya tomada, vuelva a intentarlo en su siguiente turno\n\n";
    A[x][y]='O';
    //tabla superior
    if(A[0][0]=='O' && A[0][1]=='O' && A[0][2]=='O') gato=1;
    if(A[1][0]=='O' && A[1][1]=='O' && A[1][2]=='O') gato=1;
    if(A[2][0]=='O' && A[2][1]=='O' && A[2][2]=='O') gato=1;
    if(A[0][0]=='O' && A[1][0]=='O' && A[2][0]=='O') gato=1;
    if(A[0][1]=='O' && A[1][1]=='O' && A[2][1]=='O') gato=1;
    if(A[0][2]=='O' && A[1][2]=='O' && A[2][2]=='O') gato=1;
    if(A[0][0]=='O' && A[1][1]=='O' && A[2][2]=='O') gato=1;
    if(A[2][0]=='O' && A[1][1]=='O' && A[0][2]=='O') gato=1;
    //Tabla media
    if(A[3][3]=='O' && A[3][4]=='O' && A[3][5]=='O') gato=1;
    if(A[4][3]=='O' && A[4][4]=='O' && A[4][5]=='O') gato=1;
    if(A[5][3]=='O' && A[5][4]=='O' && A[5][5]=='O') gato=1;
    if(A[3][3]=='O' && A[4][3]=='O' && A[5][3]=='O') gato=1;
    if(A[3][4]=='O' && A[4][4]=='O' && A[5][4]=='O') gato=1;
    if(A[3][5]=='O' && A[4][5]=='O' && A[5][5]=='O') gato=1;
    if(A[3][3]=='O' && A[4][4]=='O' && A[5][5]=='O') gato=1;
    if(A[5][3]=='O' && A[4][4]=='O' && A[3][5]=='O') gato=1;
    //tabla inferior
    if(A[6][6]=='O' && A[6][7]=='O' && A[6][8]=='O') gato=1;
    if(A[7][6]=='O' && A[7][7]=='O' && A[7][8]=='O') gato=1;
    if(A[8][6]=='O' && A[8][7]=='O' && A[8][8]=='O') gato=1;
    if(A[6][6]=='O' && A[7][6]=='O' && A[8][6]=='O') gato=1;
    if(A[7][6]=='O' && A[7][7]=='O' && A[7][8]=='O') gato=1;
    if(A[6][8]=='O' && A[7][8]=='O' && A[8][8]=='O') gato=1;
    if(A[6][6]=='O' && A[7][7]=='O' && A[8][8]=='O') gato=1;
    if(A[8][6]=='O' && A[7][7]=='O' && A[6][8]=='O') gato=1;
    //verticales
    if(A[0][0]=='O' && A[3][3]=='O' && A[6][6]=='O') gato=1;
    if(A[0][1]=='O' && A[3][4]=='O' && A[6][7]=='O') gato=1;
    if(A[0][2]=='O' && A[3][5]=='O' && A[6][8]=='O') gato=1;
    if(A[1][0]=='O' && A[4][3]=='O' && A[7][6]=='O') gato=1;
    if(A[1][1]=='O' && A[4][4]=='O' && A[7][7]=='O') gato=1;
    if(A[1][2]=='O' && A[4][5]=='O' && A[7][8]=='O') gato=1;
    if(A[2][0]=='O' && A[5][3]=='O' && A[8][6]=='O') gato=1;
    if(A[2][1]=='O' && A[5][4]=='O' && A[8][7]=='O') gato=1;
    if(A[2][2]=='O' && A[5][5]=='O' && A[8][8]=='O') gato=1;
    //Cruzados 3D
    if(A[0][2]=='O' && A[4][3]=='O' && A[6][6]=='O') gato=1;
    if(A[0][0]=='O' && A[4][4]=='O' && A[8][8]=='O') gato=1;
    if(A[0][2]=='O' && A[4][4]=='O' && A[8][6]=='O') gato=1;
    if(A[2][0]=='O' && A[4][4]=='O' && A[6][8]=='O') gato=1;
    //laterales 3D 0,3,6
    if(A[0][0]=='O' && A[3][4]=='O' && A[6][8]=='O') gato=1;
    if(A[0][2]=='O' && A[4][4]=='O' && A[6][6]=='O') gato=1;
    //Laterales 3D 1,4,7
    if(A[1][0]=='O' && A[4][4]=='O' && A[7][8]=='O') gato=1;
    if(A[7][6]=='O' && A[4][4]=='O' && A[1][2]=='O') gato=1;
    //laterales 3D 2,5,8
    if(A[2][0]=='O' && A[5][4]=='O' && A[8][8]=='O') gato=1;
    if(A[2][2]=='O' && A[4][4]=='O' && A[8][6]=='O') gato=1;

    turno=1;
}


No he tenido tiempo de mirarlo bien entonces perdona si ya lo has echo y por lo que sea no lo he visto, pero normalmente este tipo de aplicaciones las meto en un loop "while x==0.. do". Cuando quieres romper el "loop" y terminar el programa simplemente le asignas un valor a la variable x
"Las ideas son más poderosas que las armas. Si no permitimos a nuestros enemigos tener armas; ¿Porqué ibamos a permitirles tener ideas?" (Stalin)

eldraku

#2
¿está hecho en lenjuage C, no?

el que mejor puedes mirar los fallos eres tú, mirando desde el compilador que uses cuáles son las líneas de código que te están dando error

tambien recuerdo que cuando practicaba usaba prints o couts de las diferentes variables en diferents puntos del código para ir viendo qué valores me iban saliendo y poder así intuir dónde podía estar el fallo

A una mala, busca códigos bien hechos de Gato (tres en raya 3D) y maquéalos un poco para que no te pille el profe, je, je, pero si de verdad estás interesado en programar deberías aprenderte muy bien los fundamentos desde cero antes de seguir estudiando más, ya que si ahora te lías, no te digo lo que te liarás después, ja, ja

pero bueno, ánimo y no te agobies, a todos nos ha pasado quedarnos atascados con un código por haber cometido algún error tonto...


[LOH]lordofhell

Cita de: Lenin en Diciembre 06, 2014, 09:25:20 AM
Cita de: [LOH]lordofhell en Diciembre 06, 2014, 04:43:32 AM
Estoy haciendo una tarea de Gato 3D que es para el 15 de diciembre, y ya casi lo tengo listo, pero por el momento tengo dos problemas:

1-Tengo que implementar un menu para que elija si quiero iniciar el juego o imprimir un "acerca de" el juego, intente hacer un menu de prueba, pero se me reproduce infinitamente.

2-Tengo problemas grafico en el que varias "cordenadas" de la tabla inferior salen mal, y no tengo idea de porque.

hechenle un vistazo por favor:

#include <cstdlib>
#include <iostream>
#include <iomanip>
#define MAX 3

void declaracion(char [MAX][MAX]);
void impresion(char [MAX][MAX]);
void Insercionx(char [MAX][MAX], int, int, int &,int &);
void Inserciono(char [MAX][MAX], int, int, int &,int &);

using namespace std;

int main()
{
    int gato=0;
    int turno;
    int accion;
char Matriz1[MAX][MAX];
int cordenadax, cordenaday;
    declaracion(Matriz1);

    do{
    cout<<"Elija la opcion que quiere ejecutar: \n[0]-Iniciar juego.\n[3]-Acerca de.\n";
    cin>>accion;

    switch(accion){
    case 0: turno=1; break;
    case 1: cout<<" "; break;
    default: cout<<"Valor invalido\n"; break;}
    }while(turno!=0);

    do{
      impresion(Matriz1);

      if(gato==1){
         cout<<"\nGato, jugador 1 gana\n\n";
         system("PAUSE");
         return EXIT_SUCCESS;
         }

      if(gato==2){
         cout<<"\nGato, jugador 2 gana\n\n";
         system("PAUSE");
         return EXIT_SUCCESS;
         }

      if(turno==1){
      cout<<"Jugador 1 escriba las cordenada en las que quiere colocar la X,\nque sean de 0 a 8:\nCordenada del renglon: ";
      cin>>cordenadax;
      cout<<"Cordenada de la columna: ";
      cin>>cordenaday;

      if(cordenadax<0 || cordenadax>8 || cordenaday<0 || cordenaday>8) cout<<"\nvalor invalido\n\n";

      Insercionx(Matriz1,cordenadax,cordenaday, gato, turno);
      }

      /*if(turno==2){
      cout<<"Jugador 2 escriba las cordenada en las que quiere colocar la O,\nque sean de 0 a 8:\nCordenada del renglon: ";
      cin>>cordenadax;
      cout<<"Cordenada de la columna: ";
      cin>>cordenaday;

      if(cordenadax<0 || cordenadax>8 || cordenaday<0 || cordenaday>8) cout<<"\nvalor invalido\n\n";

      Inserciono(Matriz1,cordenadax,cordenaday, gato, turno);
      }*/

      }while (gato!=0);

    impresion(Matriz1);


    system("PAUSE");
    return EXIT_SUCCESS;
}

///////////////////////////////////////////////////////////////
void declaracion(char A[MAX][MAX])
{
    for(int i=0;i<9;++i){
        for(int j=0;j<9;++j){
            A[i][j]='.';
            }
    }

}
/////////////////////////////////////////////////////
void impresion(char A[MAX][MAX])
{
   cout<<"Tabla Superior:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=0;i<3;++i){
            cout<<i<<' '<<char(179);
             for(int j=0;j<3;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;

     ////////////////////////////

     cout<<"Tabla Media:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z+3;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=3;i<6;++i){
            cout<<i<<' '<<char(179);
             for(int j=3;j<6;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;

     ////////////////////////////////

     cout<<"Tabla Inferior:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z+6;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=6;i<9;++i){
            cout<<i<<' '<<char(179);
             for(int j=6;j<9;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;
}
///////////////////////////////////////////////////////////////////
void Insercionx(char A[MAX][MAX], int x, int y,int &gato,int &turno)
{
    if(A[x][y]=='X' || A[x][y]=='O') cout<<"\ncordenada ya tomada, vuelva a intentarlo en su siguiente turno\n\n";
    A[x][y]='X';
    //tabla superior
    if(A[0][0]=='X' && A[0][1]=='X' && A[0][2]=='X') gato=1;
    if(A[1][0]=='X' && A[1][1]=='X' && A[1][2]=='X') gato=1;
    if(A[2][0]=='X' && A[2][1]=='X' && A[2][2]=='X') gato=1;
    if(A[0][0]=='X' && A[1][0]=='X' && A[2][0]=='X') gato=1;
    if(A[0][1]=='X' && A[1][1]=='X' && A[2][1]=='X') gato=1;
    if(A[0][2]=='X' && A[1][2]=='X' && A[2][2]=='X') gato=1;
    if(A[0][0]=='X' && A[1][1]=='X' && A[2][2]=='X') gato=1;
    if(A[2][0]=='X' && A[1][1]=='X' && A[0][2]=='X') gato=1;
    //Tabla media
    if(A[3][3]=='X' && A[3][4]=='X' && A[3][5]=='X') gato=1;
    if(A[4][3]=='X' && A[4][4]=='X' && A[4][5]=='X') gato=1;
    if(A[5][3]=='X' && A[5][4]=='X' && A[5][5]=='X') gato=1;
    if(A[3][3]=='X' && A[4][3]=='X' && A[5][3]=='X') gato=1;
    if(A[3][4]=='X' && A[4][4]=='X' && A[5][4]=='X') gato=1;
    if(A[3][5]=='X' && A[4][5]=='X' && A[5][5]=='X') gato=1;
    if(A[3][3]=='X' && A[4][4]=='X' && A[5][5]=='X') gato=1;
    if(A[5][3]=='X' && A[4][4]=='X' && A[3][5]=='X') gato=1;
    //tabla inferior
    if(A[6][6]=='X' && A[6][7]=='X' && A[6][8]=='X') gato=1;
    if(A[7][6]=='X' && A[7][7]=='X' && A[7][8]=='X') gato=1;
    if(A[8][6]=='X' && A[8][7]=='X' && A[8][8]=='X') gato=1;
    if(A[6][6]=='X' && A[7][6]=='X' && A[8][6]=='X') gato=1;
    if(A[7][6]=='X' && A[7][7]=='X' && A[7][8]=='X') gato=1;
    if(A[6][8]=='X' && A[7][8]=='X' && A[8][8]=='X') gato=1;
    if(A[6][6]=='X' && A[7][7]=='X' && A[8][8]=='X') gato=1;
    if(A[8][6]=='X' && A[7][7]=='X' && A[6][8]=='X') gato=1;
    //verticales
    if(A[0][0]=='X' && A[3][3]=='X' && A[6][6]=='X') gato=1;
    if(A[0][1]=='X' && A[3][4]=='X' && A[6][7]=='X') gato=1;
    if(A[0][2]=='X' && A[3][5]=='X' && A[6][8]=='X') gato=1;
    if(A[1][0]=='X' && A[4][3]=='X' && A[7][6]=='X') gato=1;
    if(A[1][1]=='X' && A[4][4]=='X' && A[7][7]=='X') gato=1;
    if(A[1][2]=='X' && A[4][5]=='X' && A[7][8]=='X') gato=1;
    if(A[2][0]=='X' && A[5][3]=='X' && A[8][6]=='X') gato=1;
    if(A[2][1]=='X' && A[5][4]=='X' && A[8][7]=='X') gato=1;
    if(A[2][2]=='X' && A[5][5]=='X' && A[8][8]=='X') gato=1;
    //Cruzados 3D
    if(A[0][2]=='X' && A[4][3]=='X' && A[6][6]=='X') gato=1;
    if(A[0][0]=='X' && A[4][4]=='X' && A[8][8]=='X') gato=1;
    if(A[0][2]=='X' && A[4][4]=='X' && A[8][6]=='X') gato=1;
    if(A[2][0]=='X' && A[4][4]=='X' && A[6][8]=='X') gato=1;
    //laterales 3D 0,3,6
    if(A[0][0]=='X' && A[3][4]=='X' && A[6][8]=='X') gato=1;
    if(A[0][2]=='X' && A[4][4]=='X' && A[6][6]=='X') gato=1;
    //Laterales 3D 1,4,7
    if(A[1][0]=='X' && A[4][4]=='X' && A[7][8]=='X') gato=1;
    if(A[7][6]=='X' && A[4][4]=='X' && A[1][2]=='X') gato=1;
    //laterales 3D 2,5,8
    if(A[2][0]=='X' && A[5][4]=='X' && A[8][8]=='X') gato=1;
    if(A[2][2]=='X' && A[4][4]=='X' && A[8][6]=='X') gato=1;

    turno=2;
}
//////////////////////////////////////////////////////////////////
void Inserciono(char A[MAX][MAX], int x, int y,int &gato,int &turno)
{
    if(A[x][y]=='X' || A[x][y]=='O') cout<<"\ncordenada ya tomada, vuelva a intentarlo en su siguiente turno\n\n";
    A[x][y]='O';
    //tabla superior
    if(A[0][0]=='O' && A[0][1]=='O' && A[0][2]=='O') gato=1;
    if(A[1][0]=='O' && A[1][1]=='O' && A[1][2]=='O') gato=1;
    if(A[2][0]=='O' && A[2][1]=='O' && A[2][2]=='O') gato=1;
    if(A[0][0]=='O' && A[1][0]=='O' && A[2][0]=='O') gato=1;
    if(A[0][1]=='O' && A[1][1]=='O' && A[2][1]=='O') gato=1;
    if(A[0][2]=='O' && A[1][2]=='O' && A[2][2]=='O') gato=1;
    if(A[0][0]=='O' && A[1][1]=='O' && A[2][2]=='O') gato=1;
    if(A[2][0]=='O' && A[1][1]=='O' && A[0][2]=='O') gato=1;
    //Tabla media
    if(A[3][3]=='O' && A[3][4]=='O' && A[3][5]=='O') gato=1;
    if(A[4][3]=='O' && A[4][4]=='O' && A[4][5]=='O') gato=1;
    if(A[5][3]=='O' && A[5][4]=='O' && A[5][5]=='O') gato=1;
    if(A[3][3]=='O' && A[4][3]=='O' && A[5][3]=='O') gato=1;
    if(A[3][4]=='O' && A[4][4]=='O' && A[5][4]=='O') gato=1;
    if(A[3][5]=='O' && A[4][5]=='O' && A[5][5]=='O') gato=1;
    if(A[3][3]=='O' && A[4][4]=='O' && A[5][5]=='O') gato=1;
    if(A[5][3]=='O' && A[4][4]=='O' && A[3][5]=='O') gato=1;
    //tabla inferior
    if(A[6][6]=='O' && A[6][7]=='O' && A[6][8]=='O') gato=1;
    if(A[7][6]=='O' && A[7][7]=='O' && A[7][8]=='O') gato=1;
    if(A[8][6]=='O' && A[8][7]=='O' && A[8][8]=='O') gato=1;
    if(A[6][6]=='O' && A[7][6]=='O' && A[8][6]=='O') gato=1;
    if(A[7][6]=='O' && A[7][7]=='O' && A[7][8]=='O') gato=1;
    if(A[6][8]=='O' && A[7][8]=='O' && A[8][8]=='O') gato=1;
    if(A[6][6]=='O' && A[7][7]=='O' && A[8][8]=='O') gato=1;
    if(A[8][6]=='O' && A[7][7]=='O' && A[6][8]=='O') gato=1;
    //verticales
    if(A[0][0]=='O' && A[3][3]=='O' && A[6][6]=='O') gato=1;
    if(A[0][1]=='O' && A[3][4]=='O' && A[6][7]=='O') gato=1;
    if(A[0][2]=='O' && A[3][5]=='O' && A[6][8]=='O') gato=1;
    if(A[1][0]=='O' && A[4][3]=='O' && A[7][6]=='O') gato=1;
    if(A[1][1]=='O' && A[4][4]=='O' && A[7][7]=='O') gato=1;
    if(A[1][2]=='O' && A[4][5]=='O' && A[7][8]=='O') gato=1;
    if(A[2][0]=='O' && A[5][3]=='O' && A[8][6]=='O') gato=1;
    if(A[2][1]=='O' && A[5][4]=='O' && A[8][7]=='O') gato=1;
    if(A[2][2]=='O' && A[5][5]=='O' && A[8][8]=='O') gato=1;
    //Cruzados 3D
    if(A[0][2]=='O' && A[4][3]=='O' && A[6][6]=='O') gato=1;
    if(A[0][0]=='O' && A[4][4]=='O' && A[8][8]=='O') gato=1;
    if(A[0][2]=='O' && A[4][4]=='O' && A[8][6]=='O') gato=1;
    if(A[2][0]=='O' && A[4][4]=='O' && A[6][8]=='O') gato=1;
    //laterales 3D 0,3,6
    if(A[0][0]=='O' && A[3][4]=='O' && A[6][8]=='O') gato=1;
    if(A[0][2]=='O' && A[4][4]=='O' && A[6][6]=='O') gato=1;
    //Laterales 3D 1,4,7
    if(A[1][0]=='O' && A[4][4]=='O' && A[7][8]=='O') gato=1;
    if(A[7][6]=='O' && A[4][4]=='O' && A[1][2]=='O') gato=1;
    //laterales 3D 2,5,8
    if(A[2][0]=='O' && A[5][4]=='O' && A[8][8]=='O') gato=1;
    if(A[2][2]=='O' && A[4][4]=='O' && A[8][6]=='O') gato=1;

    turno=1;
}


No he tenido tiempo de mirarlo bien entonces perdona si ya lo has echo y por lo que sea no lo he visto, pero normalmente este tipo de aplicaciones las meto en un loop "while x==0.. do". Cuando quieres romper el "loop" y terminar el programa simplemente le asignas un valor a la variable x
no sabia que se podia usar al revez, lo intentare, gracias

Charon

Cita de: [LOH]lordofhell en Diciembre 06, 2014, 04:02:00 PM
Cita de: Lenin en Diciembre 06, 2014, 09:25:20 AM
No he tenido tiempo de mirarlo bien entonces perdona si ya lo has echo y por lo que sea no lo he visto, pero normalmente este tipo de aplicaciones las meto en un loop "while x==0.. do". Cuando quieres romper el "loop" y terminar el programa simplemente le asignas un valor a la variable x
no sabia que se podia usar al revez, lo intentare, gracias

No he entendido lo de usar al revés. ¿Dices que no sabías lo de romper el loop asignandole un 1 a la variable X?

[LOH]lordofhell

olviden eso de alrevez, ya logre solucionar mi primer problema igual, aqui el codigo actual:

#include <cstdlib>
#include <iostream>
#include <iomanip>
#define MAX 3

void declaracion(char [MAX][MAX]);
void impresion(char [MAX][MAX]);
void Insercionx(char [MAX][MAX], int, int, int &,int &);
void Inserciono(char [MAX][MAX], int, int, int &,int &);

using namespace std;

int main()
{
    int gato=0;
    int turno;
    int accion;
char Matriz1[MAX][MAX];
int cordenadax, cordenaday;
    declaracion(Matriz1);

    do{
    cout<<"Elija la opcion que quiere ejecutar: \n[0]-Iniciar juego.\n[1]-Acerca de.\n";
    cin>>accion;

    switch(accion){
    case 0: turno=1; break;
    case 1: cout<<" "; break;
    default: cout<<"Valor invalido\n"; break;}
    }while(accion!=0);

    do{

      if(turno==1){
         impresion(Matriz1);
         cout<<"Jugador 1 escriba las cordenada en las que quiere colocar la X,\nque sean de 0 a 8 y sean de acuerdo a la tabla deseada:\nCordenada del renglon: ";
         cin>>cordenadax;
         cout<<"Cordenada de la columna: ";
         cin>>cordenaday;

         if(cordenadax<0 || cordenadax>8 || cordenaday<0 || cordenaday>8 ||(cordenadax<3 && cordenaday>=3) || (cordenadax>=3 && cordenaday<3) || (cordenadax>=6 && cordenaday<6) || (cordenadax<6 && cordenaday>=6) ) cout<<"\nvalor invalido, turno perdido\n\n";

         Insercionx(Matriz1,cordenadax,cordenaday, gato, turno);
      }

      if(gato==1){
         cout<<"\nGato, jugador 1 gana\n\n";
         system("PAUSE");
         return EXIT_SUCCESS;
         }

      if(turno==2){
         impresion(Matriz1);
         cout<<"Jugador 2 escriba las cordenada en las que quiere colocar la O,\nque sean de 0 a 8 y sean de acuerdo a la tabla deseada:\nCordenada del renglon: ";
         cin>>cordenadax;
         cout<<"Cordenada de la columna: ";
         cin>>cordenaday;

         if(cordenadax<0 || cordenadax>8 || cordenaday<0 || cordenaday>8) cout<<"\nvalor invalido\n\n";

         Inserciono(Matriz1,cordenadax,cordenaday, gato, turno);
      }

      if(gato==2){
         cout<<"\nGato, jugador 2 gana\n\n";
         system("PAUSE");
         return EXIT_SUCCESS;
         }

    }while(gato!=0);



    impresion(Matriz1);


    system("PAUSE");
    return EXIT_SUCCESS;
}

///////////////////////////////////////////////////////////////
void declaracion(char A[MAX][MAX])
{
    for(int i=0;i<9;++i){
        for(int j=0;j<9;++j){
            A[i][j]='.';
            }
    }

}
/////////////////////////////////////////////////////
void impresion(char A[MAX][MAX])
{
   cout<<"Tabla Superior:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=0;i<3;++i){
            cout<<i<<' '<<char(179);
             for(int j=0;j<3;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;

     ////////////////////////////

     cout<<"Tabla Media:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z+3;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=3;i<6;++i){
            cout<<i<<' '<<char(179);
             for(int j=3;j<6;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;

     ////////////////////////////////

     cout<<"Tabla Inferior:\n";
    cout<<"  "<<char(218);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<z+6;
     }
     cout<<setw(3)<<char(191)<<endl;

        for(int i=6;i<9;++i){
            cout<<i<<' '<<char(179);
             for(int j=6;j<9;++j){
                     cout<<setw(4)<<A[i][j];
                     }
             cout<<setw(3)<<char(179)<<endl;
     }

          cout<<"  "<<char(192);
     for(int z=0;z<3;++z){
             cout<<setw(4)<<" ";
     }
     cout<<setw(3)<<char(217)<<endl<<endl;
}
///////////////////////////////////////////////////////////////////
void Insercionx(char A[MAX][MAX], int x, int y,int &gato,int &turno)
{
    if(A[x][y]=='X' || A[x][y]=='O') cout<<"\ncordenada ya tomada, vuelva a intentarlo en su siguiente turno\n\n";
    A[x][y]='X';
    //tabla superior
    if(A[0][0]=='X' && A[0][1]=='X' && A[0][2]=='X') gato=1;
    if(A[1][0]=='X' && A[1][1]=='X' && A[1][2]=='X') gato=1;
    if(A[2][0]=='X' && A[2][1]=='X' && A[2][2]=='X') gato=1;
    if(A[0][0]=='X' && A[1][0]=='X' && A[2][0]=='X') gato=1;
    if(A[0][1]=='X' && A[1][1]=='X' && A[2][1]=='X') gato=1;
    if(A[0][2]=='X' && A[1][2]=='X' && A[2][2]=='X') gato=1;
    if(A[0][0]=='X' && A[1][1]=='X' && A[2][2]=='X') gato=1;
    if(A[2][0]=='X' && A[1][1]=='X' && A[0][2]=='X') gato=1;
    //Tabla media
    if(A[3][3]=='X' && A[3][4]=='X' && A[3][5]=='X') gato=1;
    if(A[4][3]=='X' && A[4][4]=='X' && A[4][5]=='X') gato=1;
    if(A[5][3]=='X' && A[5][4]=='X' && A[5][5]=='X') gato=1;
    if(A[3][3]=='X' && A[4][3]=='X' && A[5][3]=='X') gato=1;
    if(A[3][4]=='X' && A[4][4]=='X' && A[5][4]=='X') gato=1;
    if(A[3][5]=='X' && A[4][5]=='X' && A[5][5]=='X') gato=1;
    if(A[3][3]=='X' && A[4][4]=='X' && A[5][5]=='X') gato=1;
    if(A[5][3]=='X' && A[4][4]=='X' && A[3][5]=='X') gato=1;
    //tabla inferior
    if(A[6][6]=='X' && A[6][7]=='X' && A[6][8]=='X') gato=1;
    if(A[7][6]=='X' && A[7][7]=='X' && A[7][8]=='X') gato=1;
    if(A[8][6]=='X' && A[8][7]=='X' && A[8][8]=='X') gato=1;
    if(A[6][6]=='X' && A[7][6]=='X' && A[8][6]=='X') gato=1;
    if(A[7][6]=='X' && A[7][7]=='X' && A[7][8]=='X') gato=1;
    if(A[6][8]=='X' && A[7][8]=='X' && A[8][8]=='X') gato=1;
    if(A[6][6]=='X' && A[7][7]=='X' && A[8][8]=='X') gato=1;
    if(A[8][6]=='X' && A[7][7]=='X' && A[6][8]=='X') gato=1;
    //verticales
    if(A[0][0]=='X' && A[3][3]=='X' && A[6][6]=='X') gato=1;
    if(A[0][1]=='X' && A[3][4]=='X' && A[6][7]=='X') gato=1;
    if(A[0][2]=='X' && A[3][5]=='X' && A[6][8]=='X') gato=1;
    if(A[1][0]=='X' && A[4][3]=='X' && A[7][6]=='X') gato=1;
    if(A[1][1]=='X' && A[4][4]=='X' && A[7][7]=='X') gato=1;
    if(A[1][2]=='X' && A[4][5]=='X' && A[7][8]=='X') gato=1;
    if(A[2][0]=='X' && A[5][3]=='X' && A[8][6]=='X') gato=1;
    if(A[2][1]=='X' && A[5][4]=='X' && A[8][7]=='X') gato=1;
    if(A[2][2]=='X' && A[5][5]=='X' && A[8][8]=='X') gato=1;
    //Cruzados 3D
    if(A[0][2]=='X' && A[4][3]=='X' && A[6][6]=='X') gato=1;
    if(A[0][0]=='X' && A[4][4]=='X' && A[8][8]=='X') gato=1;
    if(A[0][2]=='X' && A[4][4]=='X' && A[8][6]=='X') gato=1;
    if(A[2][0]=='X' && A[4][4]=='X' && A[6][8]=='X') gato=1;
    //laterales 3D 0,3,6
    if(A[0][0]=='X' && A[3][4]=='X' && A[6][8]=='X') gato=1;
    if(A[0][2]=='X' && A[4][4]=='X' && A[6][6]=='X') gato=1;
    //Laterales 3D 1,4,7
    if(A[1][0]=='X' && A[4][4]=='X' && A[7][8]=='X') gato=1;
    if(A[7][6]=='X' && A[4][4]=='X' && A[1][2]=='X') gato=1;
    //laterales 3D 2,5,8
    if(A[2][0]=='X' && A[5][4]=='X' && A[8][8]=='X') gato=1;
    if(A[2][2]=='X' && A[4][4]=='X' && A[8][6]=='X') gato=1;

    turno=2;
}
//////////////////////////////////////////////////////////////////
void Inserciono(char A[MAX][MAX], int x, int y,int &gato,int &turno)
{
    if(A[x][y]=='X' || A[x][y]=='O') cout<<"\ncordenada ya tomada, vuelva a intentarlo en su siguiente turno\n\n";
    A[x][y]='O';
    //tabla superior
    if(A[0][0]=='O' && A[0][1]=='O' && A[0][2]=='O') gato=1;
    if(A[1][0]=='O' && A[1][1]=='O' && A[1][2]=='O') gato=1;
    if(A[2][0]=='O' && A[2][1]=='O' && A[2][2]=='O') gato=1;
    if(A[0][0]=='O' && A[1][0]=='O' && A[2][0]=='O') gato=1;
    if(A[0][1]=='O' && A[1][1]=='O' && A[2][1]=='O') gato=1;
    if(A[0][2]=='O' && A[1][2]=='O' && A[2][2]=='O') gato=1;
    if(A[0][0]=='O' && A[1][1]=='O' && A[2][2]=='O') gato=1;
    if(A[2][0]=='O' && A[1][1]=='O' && A[0][2]=='O') gato=1;
    //Tabla media
    if(A[3][3]=='O' && A[3][4]=='O' && A[3][5]=='O') gato=1;
    if(A[4][3]=='O' && A[4][4]=='O' && A[4][5]=='O') gato=1;
    if(A[5][3]=='O' && A[5][4]=='O' && A[5][5]=='O') gato=1;
    if(A[3][3]=='O' && A[4][3]=='O' && A[5][3]=='O') gato=1;
    if(A[3][4]=='O' && A[4][4]=='O' && A[5][4]=='O') gato=1;
    if(A[3][5]=='O' && A[4][5]=='O' && A[5][5]=='O') gato=1;
    if(A[3][3]=='O' && A[4][4]=='O' && A[5][5]=='O') gato=1;
    if(A[5][3]=='O' && A[4][4]=='O' && A[3][5]=='O') gato=1;
    //tabla inferior
    if(A[6][6]=='O' && A[6][7]=='O' && A[6][8]=='O') gato=1;
    if(A[7][6]=='O' && A[7][7]=='O' && A[7][8]=='O') gato=1;
    if(A[8][6]=='O' && A[8][7]=='O' && A[8][8]=='O') gato=1;
    if(A[6][6]=='O' && A[7][6]=='O' && A[8][6]=='O') gato=1;
    if(A[7][6]=='O' && A[7][7]=='O' && A[7][8]=='O') gato=1;
    if(A[6][8]=='O' && A[7][8]=='O' && A[8][8]=='O') gato=1;
    if(A[6][6]=='O' && A[7][7]=='O' && A[8][8]=='O') gato=1;
    if(A[8][6]=='O' && A[7][7]=='O' && A[6][8]=='O') gato=1;
    //verticales
    if(A[0][0]=='O' && A[3][3]=='O' && A[6][6]=='O') gato=1;
    if(A[0][1]=='O' && A[3][4]=='O' && A[6][7]=='O') gato=1;
    if(A[0][2]=='O' && A[3][5]=='O' && A[6][8]=='O') gato=1;
    if(A[1][0]=='O' && A[4][3]=='O' && A[7][6]=='O') gato=1;
    if(A[1][1]=='O' && A[4][4]=='O' && A[7][7]=='O') gato=1;
    if(A[1][2]=='O' && A[4][5]=='O' && A[7][8]=='O') gato=1;
    if(A[2][0]=='O' && A[5][3]=='O' && A[8][6]=='O') gato=1;
    if(A[2][1]=='O' && A[5][4]=='O' && A[8][7]=='O') gato=1;
    if(A[2][2]=='O' && A[5][5]=='O' && A[8][8]=='O') gato=1;
    //Cruzados 3D
    if(A[0][2]=='O' && A[4][3]=='O' && A[6][6]=='O') gato=1;
    if(A[0][0]=='O' && A[4][4]=='O' && A[8][8]=='O') gato=1;
    if(A[0][2]=='O' && A[4][4]=='O' && A[8][6]=='O') gato=1;
    if(A[2][0]=='O' && A[4][4]=='O' && A[6][8]=='O') gato=1;
    //laterales 3D 0,3,6
    if(A[0][0]=='O' && A[3][4]=='O' && A[6][8]=='O') gato=1;
    if(A[0][2]=='O' && A[4][4]=='O' && A[6][6]=='O') gato=1;
    //Laterales 3D 1,4,7
    if(A[1][0]=='O' && A[4][4]=='O' && A[7][8]=='O') gato=1;
    if(A[7][6]=='O' && A[4][4]=='O' && A[1][2]=='O') gato=1;
    //laterales 3D 2,5,8
    if(A[2][0]=='O' && A[5][4]=='O' && A[8][8]=='O') gato=1;
    if(A[2][2]=='O' && A[4][4]=='O' && A[8][6]=='O') gato=1;

    turno=1;
}

[LOH]lordofhell

ya solucione el problema grafico, resulta que solo tenia que cambiar el MAX a 9 jeje, gracias igual

eldraku

¡así se hace, Lord!  ;)

por cierto, si usais Notepad++, yo te recomiendo mejor este, que es... ¡la bomba!  ;D

http://www.sublimetext.com/