Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: rapsolostyle en 1 Octubre 2015, 03:18 am



Título: necesito modificar este código de triqui esta C++ lo corro en koding linux
Publicado por: rapsolostyle en 1 Octubre 2015, 03:18 am
es para presentarlo pero no puedo presentar este mismo asi como esta funciona. 

#include <iostream>
#include <cstdlib>

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
  • = "-";
            }

        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]=="X")&&(vacio[1]=="X")&&(vacio[2]=="X"))
                        {
                            gana=1;
                        }

                for(int b=0; b <3; b++)
                    if ((vacio
  • =="X")&&(vacio[1]=="X")&&(vacio[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
  • << "|" << "\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;
    }

//
 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();

                cout << endl;
                cout <<"Jugador X"<< endl;
                cout <<"esta poscision ya se encuentra ocupada"<< endl;
                cout <<"porfavor vuelve a intenarlo"<< endl;
                info2=0;
                turnos--;
                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
            {


                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 O" << 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 X"<< 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 O"<< endl;
                    cout << "introduce la posicion " << endl;
                    cin >> y;
                    cin.get();
                    turno2(y);
                    ganador();

                    if (gana==(2))
                        {
                            cout << endl;
                            cout << "gana el jugador O"<< 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;
    }


Título: Re: necesito modificar este código de triqui esta C++ lo corro en koding linux
Publicado por: 0xFer en 1 Octubre 2015, 03:59 am
¿Quieres modificarlo para después decir que tú lo hiciste? Ah mira en ese caso ve a lo grande. Modifica este código que hasta "Inteligencia Artificial" tiene:
Es un Tres en raya para una persona
Código
  1. #include <stdio.h>
  2.  
  3. int n,*r,T[]={7,56,448,73,146,292,273,84,0},t=1,a,m,q,S,f,u;
  4.  
  5. Z(y){
  6.  int z=0,k=0,s,w,b=y^1?1:512;
  7.  
  8.  for(r=T,S=0;u=*r++<<(y-1?9:0);S=u&n^u?S:y);
  9.  
  10.  for(w=S==y?z=y,0:9;w--;)
  11.    !(n&513<<w)?n|=b<<w,s=Z(-y),k=!s&&k^2?z=0,1:s^y?z=-y,2:s==y&!k?z=y:k,n^=b<<w:3;
  12.  
  13.  return z;
  14. }
  15.  
  16. main(){
  17.  
  18.  for(;;t=-t){
  19.    if(t-1)scanf(" %d",&f),n|=512<<f;
  20.  
  21.    else
  22.       for(f=9,a=m=-3;--f;!(n&513<<f)?n|=1<<f,q=Z(t),a=q>a?m=f,q:a,n^=1<<f:3);  
  23.  
  24.    n|=1<<m;
  25.  
  26.    for(f=9;f--;printf("%c %c",n&1<<f?79:n&512<<f?88:45,f%3?0:10));
  27.  
  28.  }
  29. }


Título: Re: necesito modificar este código de triqui esta C++ lo corro en koding linux
Publicado por: rapsolostyle en 1 Octubre 2015, 04:10 am
 0xFer el codigo tiene que hacer un juego de triqui. no se si lo conoces.
con un compañero hicimos este codigo pero no podemos entregar el mismo y no se como modificarlo para que haga lo mismo pero con diferentes ordenes o funciones.
ejemplo pasarlo a CASE donde se pueda pero no se como.   


Título: Re: necesito modificar este código de triqui esta C++ lo corro en koding linux
Publicado por: 0xFer en 1 Octubre 2015, 04:35 am
Es muy raro que hayas ayudado en la creación de ese código y que después no sepas cómo modificarlo para que haga exactamente lo mismo. No te estoy acusando de nada pero me da la impresión de que estas intentando robar el código.
Mira mejor dile a tu amigo que te ayude a modificarlo porque según dices lo hicieron entre los dos.