Logo Studenta

Juego del ahorcado en C

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

voluntario/VOL.C
voluntario/VOL.C
    //el ahorcado
    #include<stdio.h>
    #include<string.h>
    #include<time.h>
    #include<stdlib.h>
    #include<conio.h>   
        
    char elegida[50];
    
    void Jugar();
    void Anadir();
    void introducirLetras(int t,char letras[50]);
    void Muneco(int);   
                           
    void main()
    {       
        int opc;
            
            do
            {
                printf("El ahorcado\n");
                printf("***********\n");
                
                printf("\n");  
                
                printf("(1) Jugar al ahorcado\n");
                printf("(2) Añadir palabras al juego\n");
                printf("(3) Salir\n");
                printf("Introduce una opcion:\n");
                scanf("%d",&opc);
                    switch(opc)
                    {
                        case 1: Jugar();
                                break;
                                
                        case 2: Anadir();
                                break;      
                    }               
            }
            while(opc!=3);
    }
    
    void Jugar()
    {
        FILE * ptrFichero=NULL;     
        int num=0,cont=0,i=0,t=0,x;
        char palabra[50],letras[50]; 
        //srand((unsigned)time(NULL)); 
        
        printf("\n");
            
            ptrFichero=fopen("ahorcado.txt","r");
                if(ptrFichero==NULL)
                {
                    printf("ERROR AL LEER EL FICHERO AHORCADO.TXT\n");
                    exit(1);
                }   
                else
                {
                    while(!feof(ptrFichero)) 
                    { 
                        fgets(palabra,50,ptrFichero);
                        cont++;
                    }                       
                        
                    num=rand()%cont+1; 
                    
                    rewind(ptrFichero);  
                    
                    while(fgets(palabra,50,ptrFichero)!=NULL)
                    {
                        if(i==num)
                        {                                
                            strcpy(elegida,palabra); 
                            
                                if(elegida[strlen(elegida)]=='\n') 
                                {
                                    elegida[strlen(elegida)-1]='\0';
                                    break;
                                }   
                                else
                                {
                                    elegida[strlen(elegida)-1]='\0';
                                    break;
                                }                                   
                        }
                                                    
                        i++;
                    }
                                        
                    t=strlen(elegida);
                    printf("La palabra que te ha tocado averiguar tiene %d letras\n",t); 
                    
                    fclose(ptrFichero); 
                    
                    for(x=0;x<t;x++) 
                    {
                        printf("__ ");  
                        letras[x]='_';
                    }
                                                                
                                            
                }
                
                
        printf("\n\n");
        
        //getche(); 
        
        introducirLetras(t,letras); 
    }
    
    void Anadir()
    {
        FILE * ptrFichero=NULL;
        char palabra[100]; 
        int t=0;
        
        printf("\n");
            
            ptrFichero=fopen("ahorcado.txt","a");
                if(ptrFichero==NULL)
                    printf("ERROR AL ABRIR EL FICHERO AHORCADO.TXT\n"); 
                else
                {
                    printf("Introduce tus palabras:\n");
                    fflush(stdin);
                    gets(palabra);
                        
                        t=strlen(palabra);
                        
                    while(t!=0)
                    {
                        fputs("\n",ptrFichero); 
                        fputs(palabra,ptrFichero);                      
                        fflush(stdin);
                        gets(palabra);
                        t=strlen(palabra);
                    }   
                }
                fclose(ptrFichero);
                
        printf("\n");                   
    }
    
    void introducirLetras(int t,char letras[50])
    {
        char car,falladas[28];
        int x,i=0;
        int fallos=0,true=0,algunTrue=0;
        int Esta=0,repetida=0; 
        
        for(x=0;x<28;x++)
            falladas[x]=' ';
                    
            printf("\n");
            
            do
            { 
                if(strcmp(elegida,letras)==0)
                {
                    printf("Has acertado la palabra\n");
                    
                    printf("\n");
                    
                    printf("Era %s\n",elegida);
                    return;                 
                }
                else
                {                   
                    
                    while(Esta==0)//la letra esta repetida 
                    { 
                        printf("Introduce una letra:\n");
                        fflush(stdin);
                        scanf("%c",&car);
                         
                            for(x=0;x<28;x++)
                            {
                                if(falladas[x]==car) 
                                {
                                    repetida=1;//esta repetida
                                    break;  
                                }
                                
                                if(falladas[x]!=car)
                                    repetida=0; 
                            }
                            
                        if(repetida!=1)
                            break;  
                    }                                                                                       
                    
                    for(x=0;x<t;x++)
                    {
                        if(elegida[x]==car)
                        {
                            letras[x]=car; 
                            true=0;
                            algunTrue=1;                        
                        }
                        
                        if(elegida[x]!=car) 
                            true=-1;                        
                                                    
                    }
                    
                    if(true==0)
                    {
                        falladas[i]=car;
                        i++;
                        algunTrue=0;
                    } 
                    
                    if(true==-1 && algunTrue==1)
                    {
                        true=0;
                        algunTrue=0;
                        falladas[i]=car;
                        i++;
                    } 
                    
                    if(true==-1)
                    {
                        true=0;
                        fallos++;
                        falladas[i]=car; 
                        i++;
                        Muneco(fallos);                 
                    }                   
                    
                    printf("\n");
                    
                    printf("La palabra hasta ahora es:\n");
                        for(x=0;x<t;x++)
                            printf(" %c ",letras[x]); 
                    
                    printf("\n");
printf("\n");   
                    }
                            
            }
            while(fallos!=10);
            
            if(fallos==10)
            {
                printf("¡¡¡Lo sentimos pero no has acertado la palabra :( !!!\n");
                printf("Era %s\n",elegida);
            } 
            
            printf("\n\n");
    }
    
    void Muneco(int fallos)
    {  
    
    printf("\n");
    
        switch(fallos)
        {
            case 1: printf("\t__  __  __\n"); 
                    break;
            
            case 2: printf("\t| \n");
                    printf("\t| \n"); 
                    printf("\t| \n");
                    printf("\t| \n");
                    printf("\t| \n");
                    printf("\t| \n");
                    printf("\t| \n");
                    printf("\t__  __  __\n"); 
                    break;
            
            case 3: printf("\t __ __ _   \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t__  __  __ \n");                      
                    break;
            
            case 4: printf("\t __ __ _   \n"); 
                    printf("\t|       |  \n"); 
                    printf("\t|       |  \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t__  __  __ \n");                     
                    break;
            
            case 5: printf("\t __ __ _   \n"); 
                    printf("\t|       |  \n"); 
                    printf("\t|       |  \n");
                    printf("\t|       O  \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t__  __  __ \n");                  
                    break;
                    
            case 6: printf("\t __ __ _   \n"); 
                    printf("\t|       |  \n"); 
                    printf("\t|       |  \n");
                    printf("\t|       O  \n");
                    printf("\t|       |  \n"); 
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t__  __  __ \n");                  
                    break;    
                    
            case 7: printf("\t __ __ _   \n"); 
                    printf("\t|       |  \n"); 
                    printf("\t|       |  \n");
                    printf("\t|       O  \n");
                    printf("\t|      /|  \n"); 
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t|          \n");
                    printf("\t__  __  __ \n");              
                    break;  
                    
            case 8: printf("\t __ __ _    \n"); 
                    printf("\t|       |   \n"); 
                    printf("\t|       |   \n");
                    printf("\t|       O   \n");
                    printf("\t|      /|\  \n"); 
                    printf("\t|           \n");
                    printf("\t|           \n");
                    printf("\t|           \n");
                    printf("\t|           \n");
                    printf("\t|           \n");
                    printf("\t__  __  __  \n");                     
                    break;
                    
            case 9: printf("\t __ __ _    \n"); 
                    printf("\t|       |   \n"); 
                    printf("\t|       |   \n");
                    printf("\t|       O   \n");
                    printf("\t|      /|\  \n"); 
                    printf("\t|      /    \n");
                    printf("\t|           \n");
                    printf("\t|           \n");
                    printf("\t|           \n");
                    printf("\t|           \n");
                    printf("\t__  __  __  \n");                      
                    break;
                    
            case 10: printf("\t __ __ _    \n"); 
                     printf("\t|       |   \n"); 
                     printf("\t|       |   \n");
                     printf("\t|       O   \n");
                     printf("\t|      /|\  \n"); 
                     printf("\t|      / \  \n");
                     printf("\t|           \n");
                     printf("\t|           \n");
                     printf("\t|           \n");
                     printf("\t|           \n");
                     printf("\t__  __  __  \n");                      
                     break;                             
        } 
        
        printf("\n");
    }
    
                    
voluntario/VOL.SBR
voluntario/vol.obj
voluntario/VOL.EXE
voluntario/ahorcado.txt
hola
adios
madrid
telefono movil
libro
pelicula
ordenador
musica
comida
voluntario/msvc.pdb
voluntario/VOL.bsc
PROGRAMAS14.doc
PROGRAMAS_14
132. Programa que lee un texto desde teclado y lo almacena en un archivo
133. Programa que lee el archivo anterior y muestra en pantalla su contenido
134. Programa que lee un texto y lo almacena en un archivo en mayúsculas
135. Programa que cuenta los caracteres de un fichero
136. Programa que cuenta el nº de veces que aparece en un fichero una letra introducida por teclado 
137. Programa que cuenta el nº de palabras y líneas de un archivo
138. Programa que a partir de un archivo genera otro con sus caracteres en:
· Todos en mayúsculas
· Todos en minúsculas
· Tipo título
139. Programa que almacena en un archivo palabras
140. Utilizando el archivo generado en el ejercicio anterior, leer una palabra desde el teclado y comprobar si se encuentra en el archivo, si es así mirar en que posición (línea) está.
141. Programa que añade las palabras que contiene un archivo a las palabras que contiene otro. Listar el contenido del archivo resultante
142. Una pequeña empresa ha ideado un método para que sus archivos viajen por la red sin que nadie pueda acceder a sus datos. Para ello cada vez que va a enviar uno de ellos lo transforma en dos archivos, que son los que envía, de la siguiente manera:
Fichero: Estimado señor .......
F1: Etmd eo
F2: siaosñr
Implementar dos procesos, uno para pasar del fichero original a los dos transformados y otro para construir el original a partir de esos dos.
143. Tenemos dos ficheros, uno de usuarios y otro de passwords, sabemos que se corresponden el primer usuario con la primera password, segundo con segundo, etc...y que tanto los usuarios como las passwords se separan entre si por blancos. Contruir un tercer archivo en el que se tengan
Usuario ‘+’ password ‘ ‘ Usuario ‘+’ paswword ......
VOLUNTARIO
Programar el juego del ahorcado para jugar contra la máquina. Guardar palabras en un archivo, de entre dichas palabras elegir al azar una, esa será la que el jugador tenga que averiguar. Jugar tantas partidas como le apetezca al jugador. Dar
la posibilidad de añadir palabras al archivo.
Fichero_1
Casa
Barco
Mesa
Fichero_2
Silla
Ventana
Fichero_1
Casa
Barco
Mesa
Silla
Ventana

Continuar navegando

Otros materiales