Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #define bool int
- #define false 0
- #define true 1
- void inicializar_tablero (char & A,char &B,char &C,char &D,char &E,char &F,char &G,char &H,char &I);
- void pantalla_inicio();
- void elegir_ficha(char&,char&);
- void elegir_turno(int &turno);
- void quiere_seguir(int&);
- void jugar(char ficha_jug, char ficha_maq,
- char &A,char &B,char &C,
- char &D,char &E,char &F,
- char &G,char &H,char &I,
- int &turno);
- void juega_jugador(char ficha_jug,
- char &A,char &B,char &C,
- char &D,char &E,char &F,
- char &G,char &H,char &I);
- void juega_maq(char ficha_maq,
- char &A,char &B,char &C,
- char &D,char &E,char &F,
- char &G,char &H,char &I);
- void pantalla_salida();
- void evalua_tablero(char A,char B,char C,
- char D,char E,char F,
- char G,char H,char I,
- char ficha_maq,char ficha_maq,
- bool &ganador, bool &empate);
- int gano_jugador(char,char,char,char,char,char,char,char,char,char);
- int gano_maquina(char,char,char,char,char,char,char,char,char,char);
- void mostrar_tablero (char A,char B,char C,
- char D,char E,char F,
- char G,char H,char I);
- main()
- {
- int seguir_jugando=0, turno;
- char ficha_jug, ficha_maq,A,B,C,D,E,F,G,H,I;
- while(seguir_jugando==0)
- {
- inicializar_tablero(A,B,C,D,E,F,G,H,I); /*Se dibuja el tablero y se inicializan las variables como vacias*/
- pantalla_inicio(); /*Solo una presentacion del juego*/
- elegir_ficha(ficha_jug, ficha_maq);
- elegir_turno(turno);
- jugar(ficha_jug,ficha_maq,A,B,C,D,E,F,G,H,I,turno);
- quiere_seguir(seguir_jugando);
- printf("Gracias por jugar, vuelva pronto :D\n");
- }
- pantalla_salida();
- }
- void inicializar_tablero (char &A,char &B,char &C, /* Aqui se inicializa el tablero y se dibuja*/
- char &D,char &E,char &F,
- char &G,char &H,char &I)
- {
- (A)=' ';(B)=' ';(C)=' ';(D)=' ';(E)=' ';(F)=' ';(G)=' ';(H)=' ';(I)=' ';
- printf(" A|B|C\n");
- printf(" -----\n");
- printf(" D|E|F\n");
- printf(" -----\n");
- printf(" G|H|I\n");
- printf("Este es su tablero, por favor ingrese las opciones\n");
- printf(" | | \n");
- printf(" %c | %c | %c \n",A,B,C);
- printf("-------------\n");
- printf(" %c | %c | %c \n",D,E,F);
- printf("-------------\n");
- printf(" %c | %c | %c \n",G,H,I);
- printf(" | | \n");
- }
- void mostrar_tablero (char A,char B,char C,
- char D,char E,char F,
- char G,char H,char I)
- {
- printf("<<<<<TABLERO<<<<<\n");
- printf(" | | \n");
- printf(" %c | %c | %c \n",A,B,C);
- printf("-------------\n");
- printf(" %c | %c | %c \n",D,E,F);
- printf("-------------\n");
- printf(" %c | %c | %c \n",G,H,I);
- printf(" | | \n");
- }
- void pantalla_inicio()
- {
- printf("Bienvenido a mi juego ^.^\n");
- }
- void elegir_ficha(char &ficha_jug, char &ficha_maq) /* Este procedimiento tiene el proposito de darle al usuario las opciones de ficha
- el juego, en este caso una X o un O*/
- {
- int opcion;
- printf("Que ficha desea utilizar?\n");
- printf("Opcion 1: X; Opcion 2: O\n");
- scanf("%i", &opcion);
- while(opcion!=1 && opcion!=2)
- {
- printf("Por favor ingrese opcion valida\n");
- scanf("%i", &opcion);
- }
- if(opcion==1)
- {
- (ficha_maq)='O'; (ficha_jug)= 'X';
- }
- else
- {
- (ficha_maq)= 'X'; (ficha_jug)= 'O';
- }
- }
- void elegir_turno(int &turno) /* Como su nombre lo indica, este procedimiento permite al usuario elegir el turno mediante las opciones*/
- {
- int opcion;
- printf("¿Quien desea que comience?\n");
- printf("opcion 1: usted, opcion 2: la computadora\n");
- scanf("%i", &opcion);
- while(opcion!=1 && opcion!=2)
- {
- printf("Por favor ingrese opcion valida\n");
- scanf("%i", &opcion);
- }
- if(opcion==1)
- {
- (turno)=1;
- }
- else
- {
- (turno)=2;
- }
- }
- void jugar(char ficha_jug, char ficha_maq,
- char &A,char &B,char &C,
- char &D,char &E,char &F,
- char &G,char &H,char &I,
- int &turno)
- {
- bool empate = false;
- bool ganador = false;
- //char ficha;
- while(empate==false && ganador==false) // mientras no exista un empate o ganador sigue jugando
- {
- if((turno)==1)
- {
- juega_jugador(ficha_jug,A,B,C,D,E,F,G,H,I);
- printf("jugando usted...\n");
- mostrar_tablero (A,B,C,D,E,F,G,H,I); //actualiza tablero
- (turno)=2;
- }
- else
- { printf("jugando ordenador...\n");
- juega_maq(ficha_maq,A,B,C,D,E,F,G,H,I);
- mostrar_tablero (A,B,C,D,E,F,G,H,I); //actualiza tablero
- (turno)=1;
- }
- evalua_tablero(A,B,C,D,E,F,G,H,I,ficha_jug,ficha_maq,ganador,empate);
- }
- if(empate)
- {
- printf("Es un empate");
- }
- else
- {
- if(gano_jugador(ficha_jug,A,B,C,D,E,F,G,H,I))
- {
- printf("Felicitaciones!!!!....le gano a alguien");
- }
- else
- {
- printf("No le gana ni siquiera a la computadora");
- }
- }
- }
- void juega_jugador(char ficha_jug,
- char &A,char &B,char &C,
- char &D,char &E,char &F,
- char &G,char &H,char &I)
- {
- bool estaba_vacia=true;
- char opcion;
- while(estaba_vacia)
- {
- printf("Elija posicion para jugar");
- fflush( stdin ); // limpia cache guardado
- scanf("%c", &opcion);
- while(opcion!= 'A' && opcion!= 'B' && opcion!= 'C' &&
- opcion!= 'D' && opcion!= 'E' && opcion!= 'F' &&
- opcion!= 'G' && opcion!= 'H' && opcion!= 'I')
- {
- printf("Ingrese una letra valida del tablero");
- fflush( stdin );
- scanf("%c", &opcion);
- }
- if(opcion=='A' && A==' ')
- A=ficha_jug; estaba_vacia= false;
- if(opcion=='B' && B==' ')
- B=ficha_jug; estaba_vacia= false;
- if(opcion=='C' && C==' ')
- C=ficha_jug; estaba_vacia= false;
- if(opcion=='D' && D==' ')
- D=ficha_jug; estaba_vacia= false;
- if(opcion=='E' && E==' ')
- E=ficha_jug; estaba_vacia= false;
- if(opcion=='F' && F==' ')
- F=ficha_jug; estaba_vacia= false;
- if(opcion=='G' && G==' ')
- G=ficha_jug; estaba_vacia= false;
- if(opcion=='H' && H==' ')
- H=ficha_jug; estaba_vacia= false;
- if(opcion=='I' && I==' ')
- I=ficha_jug; estaba_vacia= false;
- if(estaba_vacia)
- printf("\nIngrese una posicion vacia");
- getche(); // pausa
- }
- }
- void juega_maq(char ficha_maq,
- char &A,char &B,char &C,
- char &D,char &E,char &F,
- char &G,char &H,char &I)
- {
- bool estaba_vacia=false;
- if (A== ' ' && estaba_vacia==false)
- {
- A= ficha_maq;
- estaba_vacia=true;
- }
- if (B== ' ' && estaba_vacia==false)
- {
- B= ficha_maq;
- estaba_vacia=true;
- }
- if (C== ' ' && estaba_vacia==false)
- {
- C= ficha_maq;
- estaba_vacia=true;
- }
- if (D== ' ' && estaba_vacia==false)
- {
- D= ficha_maq;
- estaba_vacia=true;
- }
- if (E== ' ' && estaba_vacia==false)
- {
- E= ficha_maq;
- estaba_vacia=true;
- }
- if (F== ' ' && estaba_vacia==false)
- {
- F= ficha_maq;
- estaba_vacia=true;
- }
- if (G== ' ' && estaba_vacia==false)
- {
- G= ficha_maq;
- estaba_vacia=true;
- }
- if (H== ' ' && estaba_vacia==false)
- {
- H= ficha_maq;
- estaba_vacia=true;
- }
- if (I== ' ' && estaba_vacia==false)
- {
- I= ficha_maq;
- estaba_vacia=true;
- }
- }
- int gano_jugador(char ficha_jug,
- char A, char B, char C,
- char D, char E, char F,
- char G, char H, char I)
- {
- bool gano_jugador=false;
- if(A==B && B==C && C==ficha_jug)
- gano_jugador=true;
- if(D==E && E==F && F==ficha_jug)
- gano_jugador=true;
- if(G==H && H==I && I==ficha_jug)
- gano_jugador=true;
- if(A==D && D==G && G==ficha_jug)
- gano_jugador=true;
- if(B==E && E==H && H==ficha_jug)
- gano_jugador=true;
- if(C==F && F==I && I==ficha_jug)
- gano_jugador=true;
- if(A==E && E==I && I==ficha_jug)
- gano_jugador=true;
- if(C==E && E==G && G==ficha_jug)
- gano_jugador=true;
- return(gano_jugador);
- }
- void evalua_tablero(char A,char B,char C,
- char D,char E,char F,
- char G,char H,char I,
- char ficha_jug,char ficha_maq,
- bool &ganador, bool &empate)
- {
- //ganador=false;
- //empate = false;
- if((A==B && B==C && C==ficha_jug) || (A==B && B==C && C==ficha_maq) ||
- (D==E && E==F && F==ficha_jug) || (D==E && E==F && F==ficha_maq) ||
- (G==H && H==I && I==ficha_jug) || (G==H && H==I && I==ficha_maq) ||
- (A==D && D==G && G==ficha_jug) || (A==D && D==G && G==ficha_maq) ||
- (B==E && E==H && H==ficha_jug) || (B==E && E==H && H==ficha_maq) ||
- (C==E && E==G && G==ficha_jug)|| (C==E && E==G && G==ficha_maq))
- {
- (ganador)=true;
- return;
- }
- else
- {
- if(A!=' ' && B!=' ' && C!=' ' &&
- D!=' ' && E!=' ' && F!=' ' &&
- G!=' ' && H!=' ' && I!=' ')
- {
- printf("Hay un empate");
- (empate)=true;
- return;
- }
- }
- }
- void quiere_seguir(int &otra)
- {
- char opcion;
- printf("¿ Desea seguir s/n?\n");
- scanf (" %c",&opcion);
- if(opcion== 'n' || opcion=='N')
- {
- otra=1;
- }
- }
- void pantalla_salida()
- {
- system("pause");
- }
Add Comment
Please, Sign In to add comment