Título: ayuda con este programa en c
Publicado por: jet1994 en 2 Diciembre 2012, 02:01 am
hola a todos, estoy programando un juego que se llama SENET quisiera que me ayudaran con un pequeño problema que tengo al ejecutar el juego ya que cuando le toca al segundo jugador, a la hora de de mover la pieza ingreso una letra y el juego se queda, quisiera que me dijeran a que se debe esto y como puedo solucionarlo gracias de antemano #include<stdio.h> #include<conio.h> #include<dos.h> #include<stdlib.h> int i,x,y,j; int pieza,pos=0,mov=0,tem,sacaj1=0,sacaj2=0; char tab,salir; int a[30]={1,2,3,4,5,6,7,8,9,10, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0}; void arre(); int tablilla(); void titulo(); void turno1(); void turno2(); void marco();
int main(){ clrscr(); do{ scanf("%c",&salir); if (salir=='s') exit(0); turno1(); turno2(); }while((sacaj1<=5)&&(sacaj2<=5)); if (sacaj1==5) printf("gano jugador 1"); getch(); return (0); }
void marco(){ int f,g,c; c=34; for(g=0;g<4;g++){ f=18; for(i=0;i<51;i++){ gotoxy(f,c);printf("*"); f=f+1;} c=c+2; } f=18;
for(g=0;g<11;g++){ c=34; for(i=0;i<6;i++){ gotoxy(f,c); printf("*"); c=c+1;} f=f+5;}
}
void arre() { clrscr(); marco(); int resta=0; x=20; y=35; for(i=0;i<30;i++) { if (i==10){ x=65; resta=10; y=y+2;} if (i==20){ resta=0; x=20; y=y+2;} gotoxy(x,y); if(a[i]!=0){ printf("%d",a[i]);} x=x+5-resta; } }
int tablilla(){int t; srand(time(NULL)); t=(rand()%6+1); return t;}
void titulo(){ do{ gotoxy(1,5);printf("presione 't' para tirar la tablilla"); gotoxy(40,5); scanf("%c",&tab); if (tab!='t') printf("\nDebe presionar la letra t para continuar"); }while(tab!='t'); gotoxy(1,8);printf("puede mover %d espacios",mov); }
void turno1(){ mov=tablilla(); arre(); gotoxy(20,30);printf("jugador 1 a sacado %d piezas",sacaj1); gotoxy(20,1);printf("Turno de jugador 1 -------> numeros pares"); titulo(); do{ gotoxy(1,12);printf ("escoja la pieza que va a mover"); scanf("%d",&pieza); if (pieza%2==1) printf ("escoja una de sus piezas"); delay(100);}while(pieza%2==1);
for (j=0;j<30;j++){ if(a[j]==pieza) pos=j;}
if(pos+mov>30){ a[pos]=0; sacaj1=sacaj1+1; } else{ tem=a[pos+mov]; a[pos+mov]=a[pos]; a[pos]=tem; arre();} }
void turno2(){ clrscr(); mov=tablilla(); arre(); gotoxy(20,30);printf("jugador 2 a sacado %d piezas",sacaj2); gotoxy(20,1);printf("Turno de jugador 2 -------> numeros impares"); titulo(); do{ gotoxy(1,12);printf ("escoja la pieza que va a mover"); scanf("%d",&pieza); if (pieza%2==0) printf ("escoja una de sus piezas"); delay(100);}while(pieza%2==0);
for (j=0;j<30;j++){ if(a[j]==pieza) pos=j;}
if(pos+mov>30){ a[pos]=0; sacaj2=sacaj2+1; } else{ tem=a[pos+mov]; a[pos+mov]=a[pos]; a[pos]=tem; arre();}
getch(); }
Título: Re: ayuda con este programa en c
Publicado por: x64core en 2 Diciembre 2012, 06:49 am
Depura tu codigo, dudo que alguien se tome la molestia de ver ese codigo desordenado y nada explicado
|