Programando en C – Ahorcado (cadenas de texto)
#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> void cifrar_cadena(char *cadena,char *cadena_cifrada); int es_letra(char letra); int main() { char cadena[100],cadena_cifrada[100],letra; int intentos=10,i,j,acierto,fin=0; gets(cadena); system("cls"); cifrar_cadena(cadena,cadena_cifrada); puts(cadena_cifrada); do { printf("nIntroduce una letra: "); fflush(stdin); scanf("%c",&letra); fflush(stdin); acierto=0; for(i=0;i<strlen(cadena);i++) { if((cadena[i]==letra||cadena[i]==(letra-32))&&cadena_cifrada[i]!=letra) { cadena_cifrada[i]=letra; puts(cadena_cifrada); acierto=1; } } if(strcmp(cadena,cadena_cifrada)==0) fin=1; if(acierto==0) { if(intentos>0) { printf("Has fallado, te quedan %d intentos",intentos); intentos--; } } } while(intentos!=0&&fin==0); if(fin==1) printf("nEnhorabuena, has ganado!!!!"); else printf("nnLo siento, has perdido"); getch(); return 0; } void cifrar_cadena(char *cadena,char *cadena_cifrada) { int tamano,i; tamano=strlen(cadena); strcpy(cadena_cifrada,cadena); for(i=1;i<tamano-1;i++) if(es_letra(cadena_cifrada[i])) if(cadena[i]!=cadena[0]&&cadena[i]!=cadena[tamano-1]) cadena_cifrada[i]='*'; } int es_letra(char letra) { return((letra>='a'&&letra<='z')||(letra>='A'&&letra<='Z')); }
Lo podéis descargar compilado de aquí.
oye para agregarle unas palabras para qe en vees de qe nosotros introduzcamos la palabra mejor qe el programa seleccione uno aletorio con las qe tenga guardada en el programa como podria?
Podrías crear una lista o array con las palabras o frases que desees de la forma: char * lista[] = [“palabra1”, “palabra2”, …]
Para seleccionar una palabra al azar, lo que debería hacer es generar un número entre 0 y 1 al azar y luego hacer una operación módulo (%) entre el número total de palabras que tengas guardadas para obtener el índice de la lista de una palabra al azar.