#include<iostream>
#include<string>
#include<fstream>
#include<string>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
using namespace std;
char mayusculas(char letra); //Transforma mayusculas en minusculas
void dibujo(int oportunidades); //Muestra el dibujo del ahorcado
int main ()
{
char nombrearchivo[50],a,palabra[30],palabragen[30],palabraaux[30],letra[1],salcont[1];
int n,i,q,w,e,u,k,t,m,x;
bool marcador;
m=1;
while(m!=0)
{
ifstream archivo;
salcont[0]='.';
marcador=0;
n=0;
k=0;
u=0;
q=0;
i=0;
n=0;
w=1;
x=0;
m=1;
cout<<"Bienvenido al ahorcado, porfavor indique su opcion"<<endl<<endl;
cout<<"1.-"<<'t'<<"Jugar al ahorcado (por defecto)"<<endl;
cout<<"0.-"<<'t'<<"Salir del programa"<<endl;
cin>>m;
system("cls");
switch(m)
{
case 1:
{
cout<<"Ingrese el nombre del archivo a trabajar"<<endl;
cin>>nombrearchivo;
system("cls");
archivo.open(nombrearchivo);
while(salcont[0]!='-')
{
archivo.get(a);
if (a>='A' && a<='Z')
a=mayusculas(a);
palabra[n]=a;
if (palabra[n]==' ')
palabra[n]='n';
palabragen[i]=palabra[n];
palabraaux[i]=palabra[n];
if (palabra[n]=='n' || palabra[n]==' ')
{
if(i<3 || i>7)
{
cout<<"La palabra "";
while(q<i)
{
cout<<palabraaux[q];
q++;
}
cout<<"",ubicada en el archivo, esta fuera de rango"<<endl;
system("pause");
system("cls");
}
}
if (palabra[n]=='n' && i>=3 && i<=7 || archivo.eof())
{
if (i==0)
{
salcont[0]='-';
break;
}
for(q=0;q<i;q++)
palabraaux[q]='-';
for(q=i;q<=30;q++)
palabraaux[q]=' ';
cout<<"Ingresa una letra para adivinar la palabra y salvar al hombre de ser ahorcado. Guiate por la pista"<<endl<<endl;
cout<<endl<<"La palabra tiene "<<i<<" letras."<<endl;
if(i==0)
salcont[0]='-';
system("pause");
while(u<=6)
{
system("cls");
cout<<"Acertadas: "<<k<<" de "<<i<<endl;
cout<<endl<<endl<<palabraaux<<endl;
dibujo(u);
q=0;
letra[0]=getche();
while(q<i)
{
e=0;
t=0;
if(palabraaux[q]==letra[0])
{
while(t<=i)
{
while(e<=i)
{
if(palabraaux[e]==letra[0])
{
cout<<endl<<"La letra "<<letra[0]<<" ya se encuentra ingresada"<<endl<<"Ingrese otra letra"<<endl;
t=0;
marcador=1;
letra[0]=getche();
}
else
t++;
e++;
}
e=0;
}
}
if (palabragen[q]==letra[0])
{
system("cls");
cout<<"Acertadas: "<<k<<" de "<<i<<endl;
palabraaux[q]=palabragen[q];
k++;
cout<<endl<<endl<<palabraaux<<endl;
dibujo(u);
marcador=1; //marcador indica si le acerto a la palabra, asi no perderá una oportunidad. Por defecto está en 0 a menos que acierte
}
else
{
system("cls");
cout<<endl<<endl<<palabraaux<<endl;
dibujo(u);
}
q++;
}
if(marcador==0)
u++;
marcador=0;
if(u>=6)
{
system("cls");
cout<<"Acertadas: "<<k+1<<" de "<<i<<endl;
cout<<endl<<endl<<palabraaux<<endl;
dibujo(u);
cout<<endl<<"Ha perdido, suerte a la proxima."<<endl;
salcont[0]='-';
system("pause");
system("cls");
break;
}
if(k==i)
{
cout<<endl<<"Felicidades, ha acertado la palabra. Para continuar jugando, ingrese cualquier tecla. Para volver al menu presione -"<<endl;
cin>>salcont; //salcont saldrá del programa si el usuario presiona -
if(salcont[0]=='-')
break;
system("cls");
u=7;
}
if(salcont[0]=='-')
break;
}
i=-1;
k=0;
if(salcont[0]=='-')
break;
}
else if (palabra[n]=='n')
i=-1;
if(salcont[0]=='-')
break;
i++;
q=0;
e=0;
w=1;
u=0;
k=0;
e=0;
n=0;
}
archivo.close();
break;
}
case 2 :
break;
default: 1;
}
}
cout<<"Gracias por jugar ahorcado."<<endl;;
}
char mayusculas (char letra)
{
letra=letra+('a'-'A');
return letra;
}
void dibujo(int oportunidades)
{
if (oportunidades==0)
{
cout<<endl<<endl<<endl<<endl;
cout<<" #################"<<endl;
cout<<" # #"<<endl;
cout<<" # |"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #########"<<endl;
}
else if(oportunidades==1)
{
cout<<endl<<endl<<endl<<endl;
cout<<" #################"<<endl;
cout<<" # #"<<endl;
cout<<" # |"<<endl;
cout<<" # *"<<endl;
cout<<" # *^ ^* "<<endl;
cout<<" # * - *"<<endl;
cout<<" # *"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #########"<<endl;
}
else if(oportunidades==2)
{
cout<<endl<<endl<<endl<<endl;
cout<<" #################"<<endl;
cout<<" # #"<<endl;
cout<<" # |"<<endl;
cout<<" # *"<<endl;
cout<<" # *^ ^* "<<endl;
cout<<" # * - *"<<endl;
cout<<" # *"<<endl;
cout<<" # *"<<endl;
cout<<" # *"<<endl;
cout<<" # *"<<endl;
cout<<" # *"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #########"<<endl;
}
else if(oportunidades==3)
{
cout<<endl<<endl<<endl<<endl;
cout<<" #################"<<endl;
cout<<" # #"<<endl;
cout<<" # |"<<endl;
cout<<" # *"<<endl;
cout<<" # *^ ^* "<<endl;
cout<<" # * - *"<<endl;
cout<<" # *"<<endl;
cout<<" # **"<<endl;
cout<<" # * *"<<endl;
cout<<" # * *"<<endl;
cout<<" # *"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #########"<<endl;
}
else if(oportunidades==4)
{
cout<<endl<<endl<<endl<<endl;
cout<<" #################"<<endl;
cout<<" # #"<<endl;
cout<<" # |"<<endl;
cout<<" # *"<<endl;
cout<<" # *^ ^* "<<endl;
cout<<" # * - *"<<endl;
cout<<" # *"<<endl;
cout<<" # ***"<<endl;
cout<<" # * * *"<<endl;
cout<<" # * * *"<<endl;
cout<<" # *"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #########"<<endl;
}
else if(oportunidades==5)
{
cout<<endl<<endl<<endl<<endl;
cout<<" #################"<<endl;
cout<<" # #"<<endl;
cout<<" # |"<<endl;
cout<<" # *"<<endl;
cout<<" # *^ ^* "<<endl;
cout<<" # * - *"<<endl;
cout<<" # *"<<endl;
cout<<" # ***"<<endl;
cout<<" # * * *"<<endl;
cout<<" # * * *"<<endl;
cout<<" # *"<<endl;
cout<<" # *"<<endl;
cout<<" # *"<<endl;
cout<<" # *"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #########"<<endl;
}
else if(oportunidades==6)
{
cout<<endl<<endl<<endl<<endl;
cout<<" #################"<<endl;
cout<<" # #"<<endl;
cout<<" # |"<<endl;
cout<<" # *"<<endl;
cout<<" # *x x* "<<endl;
cout<<" # * O *"<<endl;
cout<<" # *"<<endl;
cout<<" # ***"<<endl;
cout<<" # * * *"<<endl;
cout<<" # * * *"<<endl;
cout<<" # *"<<endl;
cout<<" # * *"<<endl;
cout<<" # * *"<<endl;
cout<<" # * *"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #"<<endl;
cout<<" #########"<<endl;
}
}