You are on page 1of 6

#ifndef Ahorcado_H

#define Ahorcado_H
#define numPreguntas 10
using namespace std;
class sistema //Definicion de la clase sistema//
{
private:
char *pregunta; //Empleo de punteros en lugar de vectores//
char *respuesta;
public:
sistema();
~sistema();
void asignar_Pregunta(char *Pregunta){pregunta=Pregunta;};
//Definicion de la funcion asignar_pregunta, obtener_pregunta, asi
gnar_respuesta y obtener_respuesta//
char *obtener_Pregunta(){return pregunta;};
//La funcion obtener pregunta devuelve el atributo *pregunta asigna
do en la funcion asignar_pregunta//
void asignar_Respuesta(char *Respuesta){respuesta=Respuesta;};
char *obtener_Respuesta(){return respuesta;};
void dibujar(int i);
//La funcion dibujar debuelve un dato de tipo entero//

};
//Definicion de la clase jugador//
class Jugador:public sistema
{
private:
sistema listado[numPreguntas];
//Se crea un objeto de la clase sistema que es un vector que tiene
un listado de preguntas//
//Este vector contiene los atributos *pregunta y *respuesta//
public:
Jugador();
~Jugador();
void LlenarPreguntas();
int jugar();
};
#endif
#include "ahorc.h"
#include<conio.h>
#include<iostream>
using namespace std;
main()
{
Jugador jugador;//Creacin de un objeto de la clase jugador//
jugador.LlenarPreguntas();//El objeto jugador realiza la funcion llenar preg
untas//
char op='s';//Variable op de tipo caracter para iniciar o continuar el juego
al final//
int i=1;

do
{
cout<<"\nCUESTIONARIO\n"<<i<<endl;
i++;
int res=jugador.jugar();
//A la variable res de tipo entero le es asignado el dato que retorne la funcin j
ugar//
if(res==1)
{
cout<<"\n**** PERDISTES ****"<<endl;
}
else
{
cout<<"\n**** GANASTES ****"<<endl;
}
cout<<"\n\n
**** QUEDO BONITO NO???***\n\n"<<endl;
cout<<"\n\n**** DESEAS JUGAR NUEVAMENTE(S/N) **** \n"<<endl;
op=getch();
if(op=='S')
{
op='s';
}
if(op=='N')
{
op='n';
}
}
while(op=='s');

}
/*****************************************************************************/
/*****************************************************************************/
#include "ahorc.h"
#include<conio.h> //Empleo de la libreria conio.h para utilizar la funcin getch()
//
#include<iostream>
#define numPreguntas 10 //Define el nmero de preguntas del juego//
using namespace std;
sistema::sistema()
{}
sistema::~sistema()
{}
Jugador::Jugador()
{}
Jugador::~Jugador()
{}
void Jugador::LlenarPreguntas()
{
//Definicin de la funcin llenar preguntas//
//Se utiliza el objeto listado[numPreguntas] de la clase sistema//
/******** Pregunta 1 ************/
listado[0].asignar_Pregunta("Capital del Departamento de Risaralda");
listado[0].asignar_Respuesta("PEREIRA");

/******** Pregunta 2 ************/


listado[1].asignar_Pregunta("Capital del Departamento de Santander");
listado[1].asignar_Respuesta("BUCARAMANGA");
/******** Pregunta 3 ************/
listado[2].asignar_Pregunta("Capital del Departamento de Atlantico");
listado[2].asignar_Respuesta("BARRANQUILLA");
/******** Pregunta 4 ************/
listado[3].asignar_Pregunta("Capital del Departamento de Sucre");
listado[3].asignar_Respuesta("SINCELEJO");
/******** Pregunta 5 ************/
listado[4].asignar_Pregunta("Capital del Departamento de Tolima");
listado[4].asignar_Respuesta("IBAGUE");
/******** Pregunta 6 ************/
listado[5].asignar_Pregunta("Capital del Departamento de Boyaca");
listado[5].asignar_Respuesta("TUNJA");
/******** Pregunta 7 ************/
listado[6].asignar_Pregunta("Capital del Departamento de Choco");
listado[6].asignar_Respuesta("QUIBDO");
/******** Pregunta 8 ************/
listado[7].asignar_Pregunta("Capital del Departamento de Casanare");
listado[7].asignar_Respuesta("YOPAL");
/******** Pregunta 9 ************/
listado[8].asignar_Pregunta("Capital del Departamento de Meta");
listado[8].asignar_Respuesta("VILLAVICENCIO");
/******** Pregunta 10 ************/
listado[9].asignar_Pregunta("Capital del Departamento de La Guajira");
listado[9].asignar_Respuesta("RIOHACHA");
}
void sistema::dibujar(int i)
{
//Definicin de la funcin dibujar por la clase sistema//
char *pal="";
if (i==5)
{
pal="__@__";
cout<<"\n\n"<<pal<<endl;
pal=" ~|~";
cout<<pal<<endl;
pal=" ";
cout<<pal<<endl;
cout<<"\n\n"<<endl;
}
if (i==4)
{
pal=" 0 ";
cout<<"\n\n"<<pal<<endl;
pal=" ~|~";
cout<<pal<<endl;
pal=" ";
cout<<pal<<endl;
cout<<"\n\n"<<endl;

}
if (i==3)
{
pal=" 0 ";
cout<<"\n\n"<<pal<<endl;
pal=" ~|~";
cout<<pal<<endl;
cout<<"\n\n"<<endl;
}
if (i==2)
{
pal=" 0 ";
cout<<"\n"<<pal<<endl;
pal=" | ";
cout<<pal<<endl;
cout<<"\n\n"<<endl;
}
if (i==1)
{
pal=" 0 ";
cout<<"\n\n "<<pal<<endl;
cout<<"\n\n"<<endl;
}
}
int Jugador::jugar()
{
//Definicin de la funcin jugar de la clase jugador//
listado[0].obtener_Pregunta();
//El objeto listado[] realiza la funcin obtener pregunta//
int vec[numPreguntas];//Un vetor de datos de tipo entero//
char *respuesta;
char oculto[50];
char letra;
int j=0;
int fallo=0;
int acabar=0;
int acerto=0;
int gano=10;
int restantes=0;
for(int i=0;i<numPreguntas;i++)
{
cout<<"\n**********************************************************
********\n"<<endl;
cout<<"\n\nPREGUNTA\n"<<listado[i].obtener_Pregunta()<<endl;
//Se imprime en pantalla la pregunta numero i cuando el objeto listado realiza l
a funcin obtener_pregunta//
respuesta=listado[i].obtener_Respuesta();
//Se asigna la respuesta correspondiente a la pregunta con el objeto listado rea
lizando la funcin obtener_pregunta//
j=0;
fallo=0;
do
{
oculto[j]='-';
//Se asignan las lineas de las letras ocultas dependiendo de la

longitud de la cadena respuesta//


j++;
}
while(respuesta[j]!='\0');//'/0' Indica el fin de la cadena en la r
espuesta//
oculto[j]='\0';//Se le asigna a la variable oculto el fin de la cad
ena//
cout<<"\nRESPUESTA: \n"<<oculto<<endl;
//Imprime en pantalla las lneas de letras ocultas//
acabar=0;
do
{
cout<<"\nDigita una Letra: "<<endl;
letra=getch();//La funcin getch() es una funcin de espera//
acerto=1;
//La variable acerto indica 1 si el jugador falla en la letra//
j=0;
do
{
if(respuesta[j] == letra)
{
oculto[j]=letra;
acerto=0;
//La variable acerto indica 0 si el jugador acerta en la letra//
}
j++;
}
while(respuesta[j]!='\0');
cout<<"\n**************************************************
****************\n"<<endl;
cout<<"\n\nPREGUNTA:\n"<<listado[i].obtener_Pregunta()<<end
l;
cout<<"\nRESPUESTA:\n"<<oculto<<endl;
if(acerto==1)
{
fallo++;
//La variable fallo inicia desde 0 hasta 5, despues utilizada para la funcin dibu
jar//
}
if(fallo==5)
{
acabar=1;
//La funcin acabar indica que la pregunta se termina//
dibujar(fallo);
//Llamado a la funcin dibujar de la clase sistema//
cout<<"\n**** FALLASTE LA PREGUNTA ****\n"<<endl;

}
else
dibujar(fallo);
//Llamado a la funcin dibujar dependiendo de la variable fallo//
restantes=0;
//La variable restantes es utilizada para contar las letras que hacen falta en l
a respuesta//
j=0;//Un contador//
do
{
if(oculto[j] == '-')
{
restantes++;
//Se incrementa en 1 la variable restantes mientras se identifiquen caractres '-'
en respuesta//
}
j++;
}
while(oculto[j]!='\0');
if(restantes==0)
{
cout<<"\n**** CORRECTO ****\n"<<endl;
acabar=1;
//Se imprime en pantalla 'Correcto' cuando la variable restantes vuelva a ser ce
ro//
}
}
while(acabar!=1);
//Como se ve arriba, la variable acabar recibe el valor de 1 cuando el jugador f
alla 5 veces//
//La variable gano, cuenta el nmero de preguntas acertadas//
if(restantes!=0)
{
gano--;
}
if(gano==7)
{
return 1;
//La funcin jugar retorna el entero 1 si el jugador falla 3 preguntas//
}
}
//La funcin jugar retorna el entero 0 si el jugador tiene 8 o ms preguntas acertad
as//
return 0;
}

You might also like