Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/01/2012, 14:31
richard_h
 
Fecha de Ingreso: enero-2012
Mensajes: 17
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: funcion compleja

Vale, ahora pondre el programa completo pero solo con un case. Y si, hay muchos verbos y enc ada case hay uno. LLamo a random, y segun el numero aleatorio que salga, sera un case, y ese es el verbo que tendre que traducir.
Sobre los goto ya lo arreglo, pero ahora lo que me interesa es poner el case como una funcion, ya que cada vez que hay un verbo nuevo, tengo que copiar el mismo trozo de codigo solo que cambaido algunas variables segun el verbo que sea.

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {   //variables    
  5.     int cont=0;
  6.     int aleatorio_ingles=0, aleatorio_espanol=0, opcion_mal, opcion_verbo;
  7.        
  8.     char verbo[15];
  9.    
  10.     //pongo chars con los verbos
  11.     char betray[8]="betray";
  12.     char traicionar[15]="traicionar";
  13.    
  14.     //.......
  15.     //Ahora aqui estaria el menu principal que elegiria
  16.     //entre traducir a espanol o al ingles.
  17.     //......
  18.    
  19.     //Aqui es la opcion traducir al ingles
  20.     printf("\n\n\t ***Espanol - Ingles***\n\n");
  21.                aleatorio_espanol:
  22.                cont++;
  23.                srand(time(NULL));//random
  24.                aleatorio_espanol2:
  25.                aleatorio_espanol=152+rand()%209;//se saca un numero random
  26.                                                 // del 152 al 209
  27.                //esto una cosa rara porque algnas veces salia otro numero raro,
  28.                //jaja. Simplemente asegurar que el numero es el valido
  29.                if(aleatorio_espanol < 152 || aleatorio_espanol > 209)
  30.                    goto aleatorio_espanol2;
  31.                
  32.                switch(aleatorio_espanol)// un switch segun el numero random
  33.                
  34.                case 1://por ejemplo el case 1, que es el verbo traicionar
  35.                // esta es la parte que quiero convertir en funcion, porque
  36.                //cuando hay un verbo neuvo, copio este mismo codigo y hago otro
  37.                //case, solo que cambiando el nombre de las variables al nuevo verbo                    
  38.                        system("cls");
  39.                        do{
  40.                        printf("\n Traduzca traicionar: ");
  41.                        scanf(" %[^\n]s",&verbo);
  42.                        
  43.                        if(strcmp(verbo,betray)==0)
  44.                        {
  45.                           system("cls");
  46.                           printf("\n Muy bien.\n\n");
  47.                           do{
  48.                           printf(" 1-. Otro verbo\n");
  49.                           printf("\n 2-. Menu\n");
  50.                           printf("\n\n Que desea hacer ahora?: ");
  51.                           scanf(" %d",&opcion_verbo);
  52.                          
  53.                           switch(opcion_verbo)
  54.                           {
  55.                               case 1:
  56.                                    system("cls");
  57.                                    goto aleatorio_espanol;
  58.                                    break;
  59.                               case 2:
  60.                                    system("cls");
  61.                                    break;  
  62.                                
  63.                               default:
  64.                                    system("cls");
  65.                                    printf("\n Opcion incorrecta, intentelo de nuevo: \n\n");
  66.                                    break;                  
  67.                            }
  68.                           }while(opcion_verbo != 1 && opcion_verbo != 2);
  69.                        }
  70.                        else
  71.                        {
  72.                           system("cls");                          
  73.                           printf("\n Lo siento, traduccion incorrecta\n");
  74.                           do{
  75.                           printf("\n 1-. Volver a intentarlo\n");                          
  76.                           printf("\n 2-. Menu\n");
  77.                           scanf(" %d",&opcion_mal);
  78.                                                    
  79.                           switch(opcion_mal)
  80.                           {
  81.                               case 1:
  82.                                    system("cls");
  83.                                    break;
  84.                               case 2:
  85.                                    system("cls");
  86.                                    break;
  87.                                      
  88.                               default:
  89.                                    system("cls");
  90.                                    printf("\n Opcion no valida, intentelo de nuevo\n");
  91.                                    break;                                              
  92.                           }
  93.                           }while(opcion_mal != 1 && opcion_mal != 2);
  94.                                                  
  95.                          
  96.                        }
  97.                          
  98.                          }while(opcion_mal == 1);
  99.                        
  100.                                
  101.                        break;
  102.    
  103. return 0;    
  104. }