necesito modificar este código de triqui esta C++ lo corro en koding linux

Iniciado por rapsolostyle, 1 Octubre 2015, 03:18 AM

0 Miembros y 1 Visitante están viendo este tema.

rapsolostyle

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;
            }

0xFer

¿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
#include <stdio.h>

int n,*r,T[]={7,56,448,73,146,292,273,84,0},t=1,a,m,q,S,f,u;

Z(y){
 int z=0,k=0,s,w,b=y^1?1:512;
 
 for(r=T,S=0;u=*r++<<(y-1?9:0);S=u&n^u?S:y);
 
 for(w=S==y?z=y,0:9;w--;)
   !(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;

 return z;
}

main(){
 
 for(;;t=-t){
   if(t-1)scanf(" %d",&f),n|=512<<f;
 
   else
      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);  
   
   n|=1<<m;
           
   for(f=9;f--;printf("%c %c",n&1<<f?79:n&512<<f?88:45,f%3?0:10));
 
 }
}
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

rapsolostyle

 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.   

0xFer

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.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}