Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2009, 15:44
Avatar de axdds34
axdds34
 
Fecha de Ingreso: diciembre-2005
Ubicación: Tei Chua - China
Mensajes: 214
Antigüedad: 18 años, 5 meses
Puntos: 4
Problema con un codigo que no me va.

Bueno gente, buenas a todos. Estoy armando un ahorcado para entregar mañana en clases y estube toda la tarde dandole vueltas a un error que tengo con respecto a menu y a un switch y no logro ver donde esta. Mi pedido es que si algun alma caritativa me puede mirar un poco el codigo y decirme si hay algo mal.

Código:
#include<stdio.h>
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<ctype.h>

int premio (int a);
int menu(void);

int main() {
   char palabra[15],rep[100],temporal[100]; 
   char pal;
   int longitud=0,i,j=0,inicio=0,acertado=0,temp=0,oportunidad=8, min;
   int repetido=0,gano=0, opcion;
   do
   {
   opcion = menu();  //llamada a la funcion menu 

       switch(opcion){
		case 1:
            printf("Palabra que tiene que adivinar: ");
            gets(palabra);
            system("cls");
            rep[0] = ' ';
            rep[1] = '\0';
            do {
            	system("cls");
                temp=0;
                    for(i=0;palabra[i]!='\0';i++)
                {
                    if((islower(palabra[i]))==0)
                    {
                    min++;
                    }
                }                
                
                if(inicio == 0) {
                  for(i=0;i<strlen(palabra);i++) {
                  if(palabra[i] == ' ') {
                  temporal[i] = ' ';
                  longitud++;
                }
                    else {
                    temporal[i] = '_';	
                    longitud++;
                }
                }
                }
                    inicio = 1;
                    temporal[longitud] = '\0';
                    for(i=0;i<strlen(rep);i++) {
                    if(rep[i] == pal) {
                    repetido = 1;
                   
                } 
                    else {
                    repetido = 0;
                }
                }

                    if(repetido == 0) {
                    for(i=0;i<strlen(palabra);i++) {
	                if(palabra[i] == pal) {
	                temporal[i] = pal;
	                acertado++;
	                temp=1;
                 	} 
                    }
                    }
                    if(repetido == 0) {
                    if(temp == 0) {
                    oportunidad = oportunidad - 1;
                    }
                    }
                    else {
                    printf("Esta letra esta repetida.");
                    printf("\n\n");
                    }
                    printf("\n");
                    for(i=0;i<strlen(temporal);i++) {
                    printf(" %c ",temporal[i]);
                    }
                    printf("\n");
                    if(strcmp(palabra,temporal) == 0) {
                	gano = 1;
	                
                    }
                    printf("\n");
                    printf("Aciertos: %d",acertado);
                    printf("\n");
                    printf("Te quedan %d oportunidades.",oportunidad);
                    printf("\n");
                    rep[j] = pal;
                    j++;
                    printf("Letra que este en la palabra::");
                    scanf("\n%c",&pal); 
                    }
                while(oportunidad != 0);
                premio(gano);
                break;
        case 2:
             printf("\n\nGracias por jugar. \n\n\n");
             system("pause");
             system("cls");
             }
        system("cls");
       }
       while(opcion==1);
       
       }


int premio (int a)
{
if(a==1) {
	printf("\n\n");
 printf("Felicitaciones, esa era la palabra\n");
 system("pause");
}
else {
	printf("\n\n");
 printf("Perdiste, otra ves sera...\n");
 system("pause");
}
printf("\n\n");
}

int menu(void)
{      int opcion;
       printf("\t | Juego del Ahorcado |\n\t\n\t1. Jugar\n\n\t2. Salir\n\n\t Elegir la opci¢n: ");
     scanf("%d",&opcion);
     return(opcion);
}
Lo que no me deja poner es la palabra a adiviar, una ves que tengo el menu, ingreso al switch pero no me respeta la peticion de la palabra.