• Inicio
  • Buscar
  • Ingresar
  • Registrarse

    Seguridad en gadgets tecnológicos: todo lo que necesitas saber para protegerte

    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • C / C++ »
    • JUEGO EN C++ TRIQUI
    • Imprimir
    Páginas: [1]   Ir Abajo

    Autor Tema: JUEGO EN C++ TRIQUI  (Leído 18317 veces)

    Desconectado kerkox

    • { L0 } Ñuub
    • Mensajes: 12
      • Ver Perfil
    JUEGO EN C++ TRIQUI
    « en: Noviembre 03, 2013, 11:04:22 pm »
    Hola amigos, he esta practicando el lenguaje c++ y pues he hecho un juego de triqui en verdad es apasionante escribir codigo, este lo he hecho gracias a que un amigo de la universidad me recomendo hacer cosas basicas para poder entender otras similares, bueno en fin lo he logrado y si tienen algun comentario o alguna recomendacion sobre como mejorar el codigo.

    Bueno el juego esta diseñado de forma que la entrada para seleccionar la posicion se debe contar las casillas o posiciones debes de contar de derecha a izquierda ,
    aqui un ejemplo con los numeros de las posiciones:

    1    2     3
    4    5     6
    7    8     9

    asi es como se deben entrar las posiciones para jugar
    qui el codigo
    bueno puede que sea un poco largo pero alli esta si alguien me puede dar una idea de como hacerlo mas corto es bienvenida
     
    Código: [Seleccionar]
    #include <iostream>
    #include <stdlib.h>

    using namespace std;

     string vacio[3][3] = {"-","-","-","-","-","-","-","-","-"};

        int turnos = 0;
        int i;
        int j;
        int k;
        int info=0;
        int info2=0;
        int x;
        int y;
        int gana=0;
        int replay=0;


     void tablerolimpio()
        {
            for (i=0; i <3; i++)
                {
                    vacio[i][0] = "-";
                }

            for (j=0; j<3;j++)
                {
                    vacio[j][1] = "-";
                }

            for(k=0; k<3; k++)
                {
                    vacio[k][2] = "-";
                }
        }
    //aqui la evaluacion de quien gana
     void ganador()
        {
            if((gana==0)or (gana==3))
                {
                    for(int b=0; b <3;b++)
                        if ((vacio[0][b]=="X")&&(vacio[1][b]=="X")&&(vacio[2][b]=="X"))
                            {
                                gana=1;
                            }

                    for(int b=0; b <3; b++)
                        if ((vacio[b][0]=="X")&&(vacio[b][1]=="X")&&(vacio[b][2]=="X"))
                            {
                                gana=1;
                            }

                    if ((vacio[0][0]=="X")&&(vacio[1][1]=="X")&&(vacio[2][2]=="X"))
                        {
                            gana=1;
                        }

                    if ((vacio[0][2]=="X")&&(vacio[1][1]=="X")&&(vacio[2][0]=="X"))
                        {
                            gana=1;
                        }

                    for(int z=0; z <3;z++)
                        if ((vacio[0][z]=="O")&&(vacio[1][z]=="O")&&(vacio[2][z]=="O"))
                            {
                                gana=2;
                            }

                    for(int z=0; z <3; z++)
                        if ((vacio[z][0]=="O")&&(vacio[z][1]=="O")&&(vacio[z][2]=="O"))
                            {
                                gana=2;
                            }

                    if ((vacio[0][0]=="O")&&(vacio[1][1]=="O")&&(vacio[2][2]=="O"))
                        {
                            gana=2;
                        }

                    if ((vacio[0][2]=="O")&&(vacio[1][1]=="O")&&(vacio[2][0]=="O"))
                        {
                            gana=2;
                        }
                }
        }

     // este muestra el tablero
     void tablero()
        {
            cout << "esto es un juego de triki" << endl;
            cout << "__________________________" << endl;
            cout << "" << endl;
            cout << "para jugar debes de ingresar un numero " << endl;
            cout << "entre 1 y 9, la primera ubicacion es 1 " << endl;
            cout << "y se cuenta hacia la derecha "<< endl;
            cout << endl;

            for (i=0; i <3; i++)
                {
                    cout << "|"  << vacio[i][0] << "|" << "\t";
                }
            cout << endl;

            for (j=0; j<3;j++)
                {
                    cout << "|" << vacio[j][1] << "|" << "\t";
                }
            cout << endl;

            for(k=0; k<3; k++)
                {
                    cout << "|" << vacio[k][2]<< "|" <<"\t" ;
                }
            cout << endl;
        }

    // este va ser la funcion la cual hace que se realice la jugada
     void turno1(int x)
        {
            if ((x>9)or(x<1))
                {
                    cout << "error debes ingresar un numero entre 1 y 9"<< endl;
                    cout <<"porfavor vuelve a intenarlo"<< endl;
                    info2=0;
                    turnos--;
                    cin >> x;
                    turno1(x);
                }
            else do
                {
                    for(int a=1; a <4; a++)
                        if (x == a)
                            {
                                if((vacio[a-1][0] == "-")&&(info2==0))
                                    {
                                        vacio[a-1][0] = "X";
                                    }
                                else if ((vacio[a-1][0]=="O")or(vacio[a-1][0] == "X"))
                                    {
                                        info2=1;
                                    }
                            }

                    for(int a=4; a<7; a++)
                        if (x == a)
                            {
                                if((vacio[a-4][1] == "-")&&(info2==0))
                                    {
                                        vacio[a-4][1] = "X";
                                    }
                                else if ((vacio[a-4][1]=="O")or(vacio[a-4][1] == "X"))
                                    {
                                        info2=1;
                                    }
                            }

                    for(int a=7; a<10; a++)
                        if (x == a)
                            {
                                if ((vacio[a-7][2] == "-")&&(info2==0))
                                    {
                                        vacio[a-7][2] = "X";
                                    }
                                else if ((vacio[a-7][2]=="O")or(vacio[a-7][2] == "X"))
                                    {
                                        info2=1;
                                    }
                            }

                }while(!(x<10 && x>=1));
            system("cls");
            //system("clear"); //linux
            turnos++; // esta variable sirve de control de turnos

            if (info2==1)
                {
                    system("cls");
                    //system("clear");
                    tablero(); //muestra el tablero con las jugadas que se llevan

                    cout << endl;
                    cout <<"Jugador 1"<< endl;
                    cout <<"esta poscision ya se encuentra ocupada"<< endl;
                    cout <<"porfavor vuelve a intenarlo"<< endl;
                    info2=0;//para el reintento de una ubicacon
                    turnos--; //para no incrementar el turno erroneamente ya que se vuelve a intentar
                    cin >> x;
                    turno1(x);
                }
            else
                tablero();

        }

     // esta es la funcion la cual recibe la jugada del jugador 2
     void  turno2(int y)
        {
            if ((y>9)or(y<1)) // aqui se verfica el rango del valor que se debe ingresar
                {
                    cout << "error debes ingresar un numero entre 1 y 9"<< endl;
                    cout <<"porfavor vuelve a intenarlo"<< endl;
                    info=0;
                    turnos--;//para evitar el error de incremento de los turnos
                    cin >> y;
                    turno2(y);

                }
            else do
                {

     // esta funcion verifica en que posicon va a quedar el turno
     // del jugador 2 si esta esta ocupada por el jugador 1
     // entonces da el mensaje de la poscision esta ocupada

                    for(int a=1; a <4; a++)
                        {
                            if (y == a)
                                {
                                    if((vacio[a-1][0] == "-") &&(info == 0))
                                        {
                                            vacio[a-1][0] = "O";
                                        }

                                    else if((vacio[a-1][0] == "X")or(vacio[a-1][0] == "O"))
                                        {
                                            info = 1;
                                        }
                                }
                        }

                    for(int a=4; a<7; a++)
                        {
                            if (y == a)
                                {
                                    if((vacio[a-4][1] == "-")&&(info == 0))
                                        {
                                            vacio[a-4][1] = "O";
                                        }

                                    else if ((vacio[a-4][1] == "X")or(vacio[a-4][1] == "O"))
                                        {
                                            info = 1;
                                        }
                                }
                        }
                    for(int a=7; a<10; a++)
                        {
                            if (y == a)
                                {
                                    if((vacio[a-7][2] == "-")&&(info == 0))
                                        {
                                            vacio[a-7][2] = "O";
                                        }

                                    else if ((vacio[a-7][2] == "X")or(vacio[a-7][2] == "O"))
                                        {
                                            info = 1;
                                        }
                                }
                        }
                }
            while(!(y<10 && y>=1));
            system("cls");
            // system("clear") // para linux
            turnos++;
            if (info == 1)
                {
                    system("cls");
                    tablero();

                    cout << endl;
                    cout << "Jugador 2" << endl;
                    cout <<"esta poscision ya se encuentra ocupada"<< endl;
                    cout <<"porfavor vuelve a intenarlo"<< endl;
                    info=0;
                    turnos--;
                    cin >> y;
                    turno2(y);
                }
            else
                tablero();
        }

     void limpiar()
        {
            turnos=0;
            gana=0;
            tablerolimpio();
        }

    //***********************************************
    //FUNCION PRINCIPAL
     int main()
        {
            rejuego: //esta variable es para comenzar de nuevo el juego

        while (turnos < 9)
            {
                system("cls");
                //system("clear") //para linux
                tablero();

                cout << "" << endl;
                cout << "Turno del jugador 1" << endl;
                cout << "porfavor introduce la ubicacion" << endl;

                cin >> x;
                cin.get();
                turno1(x);
                ganador();// aqui se evalua el tablero para saber quien gana

                if(gana==1)
                    {
                        cout <<"GANA EL JUGADOR 1"<< endl;
                        cin.get();
                        cout << "Juego terminado" << endl;
                        cin.get();
                        cout << "desea jugar de nuevo" << endl;
                        cout << "1 - SI " << endl;
                        cout << "2 - NO " << endl;
                        cin >> replay;

                        if(replay==1)
                            {
                                limpiar(); // esta funcio reinicia las variables de verificacion
                                goto rejuego;
                            }
                        else if (replay ==2)
                            {
                                return 0;
                            }
                        return 0;
                    }

                if (turnos<=8) // este evalua si ya se terminaron los turnos
                    {

                        cout << "" <<endl;
                        cout << "ahora es el turno del juador 2"<< endl;
                        cout << "introduce la posicion " << endl;
                        cin >> y;
                        cin.get();
                        turno2(y);
                        ganador();

                        if (gana==2)
                            {
                                cout << endl;
                                cout << "gana el jugador 2"<< endl;
                                cin.get();
                                cout << "juego terminado" << endl;
                                cin.get();
                                cout << "desea jugar de nuevo" << endl;
                                cout << "1 - SI " << endl;
                                cout << "2 - NO " << endl;
                                cin >> replay;

                                if(replay==1)
                                    {
                                        limpiar();// esta funcio reinicia las variables de verificacion
                                        goto rejuego;
                                    }
                                else if (replay ==2)
                                    {
                                        return 0;
                                    }
                                return 0;
                            }
                    }
                ganador();
            }


        if(gana==0)
            {
                cout << "NADIE GANA" << endl;
                cout << "juego terminado"<< endl;
                cin.get();
                cout << "desea jugar de nuevo" << endl;
                cout << "1 - SI " << endl;
                cout << "2 - NO " << endl;
                cin >> replay;

                if(replay==1)
                    {
                        limpiar(); // esta funcio reinicia las variables de verificacion
                        goto rejuego;
                    }
                else if (replay ==2)
                    {
                        cout << "fin" << endl;
                        cin.get();
                        return 0;
                    }

                return 0;
            }
        cout << "fin" << endl;
        cin.get();

        return 0;
        } 
    En línea

    Desconectado mundonuevo

    • { L0 } Ñuub
    • Mensajes: 12
      • Ver Perfil
    Re:JUEGO EN C++ TRIQUI
    « Respuesta #1 en: Noviembre 20, 2019, 11:26:20 pm »
    la verdad mi parece muy, segui me ha gustado, yo soy nuevo en este tema no tengo mucha ideas y vistos unos juegos en esa pagina :
    https://protube2.com/juegos/ pero no se como alguien me puede ayudar.
    En línea

    • Imprimir
    Páginas: [1]   Ir Arriba
    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • C / C++ »
    • JUEGO EN C++ TRIQUI
     

    • SMF | SMF © 2013, Simple Machines
    • XHTML
    • RSS
    • WAP2
    Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso... Learn more