Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<math.h>
#include<ctype.h>
#define TRUE 1
#define FALSE 0
void imprimir(int oport, char *wordserr,char *word);
int found_word(char letra);
int menu(void);
int exist_word(char letra);
char *adivina(void)
{
char *diccionario[]={"UNEFA","VENEZUELA","SILLA","PERRO","SOMBRILLA",
"PAJARO","GATO","CONEJO","ZORRO","CABALLO","PEZ",
"MATEMATICA","CLAVO","LAPIZ","MADERA","PEGA","CASA",
"ELECTRONICA","CIRCUITO","AGUA","TABLA","PESAS","BARCO",
"LANCHA","CASA","BOLIVAR","BICICLETA","MONTAÑA",
"VECTOR","FISICA","LICENCIA","BEISBOL","FUTBOL",
"BASKET","CABLE","NATACION","MARATON","IMPRESORA",
"COMPUTADORA","CAMARA","ZAMURO","AHORCADO","IMPRIMIR",
"DISCO","FOTO","MARCO","GRANDEZA","PROGRAMA","MOVIMIENTO",
"CADENA","BALLENATO","NOCHE","DIA"};
int num;
srand( (unsigned)time( NULL ) );
num=rand()%50;
return(diccionario[num]);
}
char *cadena, palabra[10], letraserror[10];
main(){
system ("color a0");
printf("\n\n\t\t Programadores: Jose Castillo, Luis Osorio\n\n\t\t\t\t#Juego del Ahorcado#\n\n\n\t\n\n");
printf(" \t _____");
printf("\n |");
printf("\n | 0");
printf("\n | /|\\");
printf("\n | / \\ ");
printf("\n |\n");
printf("\n |\n\n\n\n\n");
system ("pause");
int i, cont=0,game_over=FALSE, oportunidades, acierto=FALSE, existe;
int opc=0;
char letra;
system("cls");
opc=menu();
do{
system("cls");
switch(opc){
case 1:
cadena=adivina();
strcpy(palabra,cadena);
oportunidades=8;
for(i=0;i<strlen(cadena);i++) palabra[i]='$';
for(i=cont;i>=0;i--) letraserror[i]='\0';
cont=0;
do{
do{
fflush(stdin);
system("cls");
existe=acierto=FALSE;
imprimir(oportunidades,letraserror,palabra);
printf("\n\n\tEscriba una letra: ");scanf("%c",&letra);
existe=exist_word(letra);
}while(existe);//fin do while
acierto=found_word(letra);
if(acierto){
if(strcmp(palabra, cadena)!=0){game_over=FALSE; continue;}
else game_over=TRUE;
}//fin if.
else {
letraserror[cont++]=letra;
--oportunidades;
}//fin else.
}while(oportunidades>0&&game_over==FALSE);//fin do while.
system("cls");
if(game_over&&oportunidades>4){
imprimir(oportunidades,letraserror,palabra);
printf("\n\tEXCELENTE TRABAJO!");}//fin if.
else if(game_over&&oportunidades>2){
imprimir(oportunidades,letraserror,palabra);
printf("\n\tMUY BUEN TRABAJO!");}//fin else if.
else if(game_over){
imprimir(oportunidades,letraserror,palabra);
printf("\n\tHas ganado!!");}//fin else if.
else {
printf("\n\tESTAS AHORCADO!\n\n\t");
printf("\LA PALABRA ERA..");
for(i=0;i<strlen(cadena);i++) printf("%c",cadena[i]);
printf("\t _____");
printf("\n |");
printf("\n | 0");
printf("\n | /|\\");
printf("\n | / \\ ");
printf("\n |\n");
printf("\n |\n\n\n\n");
}//fin else.
game_over=FALSE;
break;//fin case 1.
case 2: exit(0);break;//fin case 2.
}//fin switch.
fflush(stdin);
opc=menu();
}while(opc==1);
}
void imprimir(int oport, char *wordserr,char *word)
{ int i;
printf("\n\n\t\t\t Adivina la Palabra Oculta\n\n\n\t");
if(oport<6){
printf("\n\n\t\007Letras erradas: ");
for(i=0;i<strlen(wordserr);i++) printf("%c ",wordserr[i]);
}
printf("\n\n\t");
for(i=0;i<strlen(cadena);i++) printf("%c",word[i]);
printf("\n\n\tChances= %d\n",oport);
}
int menu(void)
{
int opcion;
printf("\n\n\n _______________________________________");
printf("\t\t\t\t\t | (1). Jugar | \n ");
printf("\n\t\t | (2).Salir del juego | \n ");
printf("\n\t \t | Elija una opcion para continuar: |");
printf(" \t____________________________________");
scanf("%d",&opcion);
return(opcion);
}
int found_word(char letra)
{
int acierto=FALSE,i;
letra=toupper(letra);
for(i=0;i<strlen(cadena);i++){
if(letra==cadena[i]){
palabra[i]=letra;
acierto=TRUE;}
}
return(acierto);
}
int exist_word(char letra)
{
int existe=FALSE,i;
for(i=0;i<strlen(letraserror);i++){
if(letra==letraserror[i]) {
printf("\nYa la escribistes!.\n");
existe=TRUE;
system("pause");
}
}
return(existe);
}