ayuda con este programa en c

Iniciado por jet1994, 2 Diciembre 2012, 02:01 AM

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

jet1994

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



x64core

Depura tu codigo, dudo que alguien se tome la molestia de ver ese codigo desordenado y nada explicado