5
« en: Viernes 20 de Septiembre de 2002, 18:52 »
Hola yo tambien e realizado ese programa (aunque en graficos) y pues a lo mejor te puedo orientar
El problema era en un ciclo while de la funcion juego que no lo cerrabas adecuadamenta y ademas te faltaba el contador de malas=malas +1 para que se ciclara correctamente. Ya con eso con el strcmp si las letra conciden exactamente le dara a "y" el valor de 0 y entrara al siguiente if.
aqui te dejo tu codigo con el pequeño cambio que le hice.
void juego(void)
{
inicio:
clrscr();
elegir();
imprime();
int esta=0, y, i=0;
int malas=0,k=0;
respuesta=NULL;
_setcursortype(_NOCURSOR); /*para que no aparezca el cursor*/
while(malas<=7)
{
int j=0,esta = 0;
gotoxy(12,24);
cprintf("digite la letra: ");
letra = toupper(getche()); /*CON ESTA FUNCION NO SE ADMITEN NUMEROS*/
for(i=0; i<longitud;i++)
{
if(letra==palabra)
{
j=i+1;
gotoxy((80-longitud)/2 + (j*2)-2, 20);
printf("%c",letra);
respuesta=letra;
esta=1;
}
}
malas++; // mas que malas serian las oportunidades que tiene
} //el ciclo se repite hasta que haya tenido 7 oportunidades malas
y=strcmp(palabra,respuesta);
gotoxy(22,1);
cprintf("%d",respuesta);
gotoxy(22,3);
cprintf("%d",y);
getch();
if(y==0)
{
gotoxy(32,20);
printf("C O R R E C T O");
strcpy(buenas,palabra); //aqui guardamos en buenas la palabra que ya completo
clrscr();
goto inicio;
getch();
/*if(serie == 20)
{
gotoxy(32,24);
printf("YA GANO TODA LA SERIE");
}
/*else
{
menu();
} */
}
if(esta==0)
{
malas++;
gotoxy(k+1,1);
cprintf("%c", letra);
k+=2;
}
}
Como veo que no esta completo tu programa y si te surge algun inconveniente y si te puedo colaborar decimelo que por aqui andare.