Título: ayuda tres en linea en dev-c++ Publicado por: maxfireg en 2 Mayo 2012, 01:09 am tengo la sgte duda el sgt trabajo si me compila pero no me imprime si gane empate o perdi ayuda porfavorrr:
#include <stdio.h> #include <stdlib.h> #include <TIME.H> int c[9]={0,0,0,0,0,0,0,0,0}, turno, jugador; char denuevo=' '; char tirada(int i); int ganador(); void print_gato(); void turno_jugador(); void turno_computadora(); int main() { do { int h, menu; printf(" Bienvenido a el juego del gato,\n elija una opcion :\n 1) Jugar.\n 2)salir\n"); scanf("%d", &menu); printf("\n-1-|-2-|-3-\n"); printf("-4-|-5-|-6-\n"); printf("-7-|-8-|-9-\n"); switch(menu) { case 1: jugador = 1; turno = 0; do { turno++; if (jugador) turno_jugador(); else turno_computadora(); print_gato(); } while ((!ganador())&&(turno<=8)); switch (ganador()) { case 0: printf("Ha Empatado"); break; case 1: printf("Ha Ganado"); break; case -1: printf("Ha Ganado La Maquina, Lo Siento"); break; system("pause"); } case 2: printf("Fue un placer jugar contigo"); getchar(); exit(1); break; } printf("Volver al menu? (si o no) "); scanf("%s", &denuevo); if (denuevo>=97) denuevo-=32; if ((denuevo!='s')&&(denuevo!='n')) for (h=0;h<=8;h++) c[h]=0; system("pause"); } while (denuevo=='S'); getchar(); } void print_gato() { printf("\n %c |%c |%c \n---|---|---\n %c |%c |%c \n---|---|---\n \n%c |%c |%c\n", tirada(c[0]), tirada(c[1]), tirada(c[2]), tirada(c[3]), tirada(c[4]), tirada(c[5]), tirada(c[6]), tirada(c[7]), tirada(c[8])); } char tirada(int i) { switch (i) { case (-1): return 'X'; break; case (1): return 'O'; break; default: return ' '; } } int ganador() { if ((c[0]+c[1]+c[2]==3)|| (c[3]+c[4]+c[5]==3)|| (c[6]+c[7]+c[8]==3)|| (c[6]+c[3]+c[0]==3)|| (c[7]+c[4]+c[1]==3)|| (c[8]+c[5]+c[2]==3)|| (c[6]+c[4]+c[2]==3)|| (c[8]+c[4]+c[0]==3)) return 1; else if ((c[0]+c[1]+c[2]==-3)|| (c[3]+c[4]+c[5]==-3)|| (c[6]+c[7]+c[8]==-3)|| (c[6]+c[3]+c[0]==-3)|| (c[7]+c[4]+c[1]==-3)|| (c[8]+c[5]+c[2]==-3)|| (c[6]+c[4]+c[2]==-3)|| (c[8]+c[4]+c[0]==-3)) return -1; else return 0; system("pause"); } void turno_jugador() { int quieres; printf("Le toca, En que casilla Desea jugar? [1-9] "); scanf("%d",&quieres); if ((quieres>9)|| (quieres<1)|| (c[quieres-1]!=0)) { do { printf("Ha Ingresado Un Movimiento Invalido, Ingrese una de las opciones requeridas"); fflush(stdin); scanf("%d",&quieres); } while ((quieres>9)|| (quieres<1)|| (c[quieres-1]!=0)); } c[quieres-1]=1; jugador = 0; } void turno_computadora() { int quiero; time_t t; printf("le toca a la maquina, juega en la casilla: "); do { srand(time(&t)); quiero=rand()%9; } while (c[quiero]!=0); printf("%dn", quiero + 1); c[quiero]=-1; jugador = 1; } Título: Re: ayuda tres en linea en dev-c++ Publicado por: TomaSs en 30 Mayo 2012, 13:27 pm Pues en el primer switch(menu) te falta el break en el case 1, creo que puede ser por eso ;)
|