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;
}
¿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));
}
}
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.
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.