Ahorcado C++
Dev - C++
Publicado el 1 de Mayo del 2019 por Juan
8.618 visualizaciones desde el 1 de Mayo del 2019
Un ahorcado para jugar contra la maquina u otra persona.


#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
class ahorcado{
private:
int x, y;
public:
void ganar(int vidas, int i=0);
void dibujo(int vidas, char mostrar[100], char error[100]);
void escrib(char mostrar[100], int vidas);
void palab(int vidas);
void palab1(int vidas);
void volver(bool fal);
};
int puntaje=0;
void ahorcado::ganar(int vidas, int i){
system("cls");
int xd=0;
cout<<" ------------------- \n";
cout<<" | \n";
cout<<" | \n";
cout<<" | \n";
cout<<" | o \n";
cout<<" | -|- \n";
cout<<" | /\\ \n";
cout<<" ------------------- \n";
cout<<"Felicidades, Ganaste";
switch(vidas){
case 4:{
cout<<"\nLo hiciste perfecto";
break;
}
case 3:{
cout<<"\nNo tan mal";
break;
}
case 2:{
cout<<"\nPuede mejorar";
break;
}
case 1:{
cout<<"\nAl borde!!!";
break;
}
}
bool fal;
int uwu=1;
puntaje++;
nun:
cout<<"\nQuiere volver a jugar?\n1)si\n2)no\n";cin>>uwu;
if(uwu==1){
fal=true;
volver(fal);
}
else if(uwu==2){
fal=false;
volver(fal);
}
else{
system("cls");
cout<<"Por favor ingrese la opcion que se le pide\n";
goto nun;
}
}
void ahorcado::dibujo(int vidas, char mostrar[100], char error[100]){
int xd=0;
switch(vidas){
case 4:{
cout<<" ------------------- \n";
cout<<" | | \n";
cout<<" | \n";
cout<<" | \n";
cout<<" | \n";
cout<<" | \n";
cout<<" | \n";
cout<<" ------------------- \n";
break;
}
case 3:{
cout<<" ------------------- \n";
cout<<" | | \n";
cout<<" | o \n";
cout<<" | \n";
cout<<" | ";cout<<"Letras incorrectas:";cout<<error;cout<<"\n";
cout<<" | \n";
cout<<" | \n";
cout<<" ------------------- \n";
break;
}
case 2:{
cout<<" ------------------- \n";
cout<<" | | \n";
cout<<" | o \n";
cout<<" | -|- \n";
cout<<" | ";cout<<"Letras incorrectas:";cout<<error;cout<<"\n";
cout<<" | \n";
cout<<" | \n";
cout<<" ------------------- \n";
break;
}
case 1:{
cout<<" ------------------- \n";
cout<<" | | \n";
cout<<" | o \n";
cout<<" | -|- \n";
cout<<" | / ";cout<<"Letras incorrectas:";cout<<error;cout<<"\n";
cout<<" | \n";
cout<<" | \n";
cout<<" ------------------- \n";
break;
}
case 0:{
cout<<" ------------------- \n";
cout<<" | | \n";
cout<<" | o \n";
cout<<" | -|- \n";
cout<<" | /\\ \n";
cout<<" | \n";
cout<<" | \n";
cout<<" ------------------- \n";
cout<<"Fin del juego\n";
cout<<"La palabra era:";cout<<mostrar;
int lol;
bool fal;
puntaje--;
unu:
cout<<"\nQuiere volver a jugar?\n1)si\n2)no\n";cin>>lol;
if(lol==1){
fal=true;
volver(fal);
}
else if(lol==2){
fal=false;
volver(fal);
}
else{
system("cls");
cout<<"Por favor ingrese la opcion que se le pide\n";
goto unu;
}
break;
}
}
}
void ahorcado::escrib(char mostrar[100], int vidas){
char y;
char error[100]=" ";int rorre=0;
int i=0, v1, dop=0, ula=0;
bool verdad=false;
char er[100]=" ";
char inc[100]=" ", bar[100]="-";
srand (time(NULL));
i=0;
while(mostrar[i]!=mostrar[20]){
ula++;
i++;
}
v1=rand() % ula+1;
i=0;
if(ula==v1){v1--;}
while(mostrar[i]!=mostrar[20]){
if(v1==i){
inc[i]=mostrar[i];
}else{
inc[i]=bar[0];
}
i++;
}
v1=rand() % ula+1;
if(ula==v1){v1--;}
if(ula>=8){
for(int i=0;mostrar[i]!=mostrar[20];i++){
if(v1==i){
inc[i]=mostrar[i];
}
}
}
par:
verdad=false;
cout<<"VIDAS:";cout<<vidas;cout<<"\n";
cout<<inc;
cout<<"\nIngrese una letra:\n";
cin>>y;
system("cls");
for(int i=0;mostrar[i]!=mostrar[20];i++){
if(mostrar[i]==y){
inc[i]=y;
verdad=true;
}
}
if(verdad==false){
for(i=0;i!=4;i++){
if(error[i]==y){
system("cls");
dibujo(vidas, mostrar, error);
cout<<"Esa letra ya esta marcada como erronea\n";
goto par;
}
}
error[rorre]=y;
vidas--;
dibujo(vidas, mostrar, error);
rorre++;;
i=0;
}
else{
dibujo(vidas, mostrar, error);
i=0;
}
for(int i=0;mostrar[i]!=mostrar[20];i++){
if(mostrar[i]==inc[i]){
dop++;
}
}
i=0;
if(dop==ula){
ganar(vidas, i);
}
dop=0;
goto par;
}
void ahorcado::palab(int vidas){
int i=0, v, v1;
char numero[100]="numero", letra[100]="letra", programar[100]="programar";
char mostrar[100];
srand (time(NULL));
uwu:
v=rand() % 3+1;
switch(v){
case 1:{while(i<=5){mostrar[i]=numero[i];i++;}break;}
case 2:{while(i<=5){mostrar[i]=letra[i];i++;}break;}
case 3:{while(i<=9){mostrar[i]=programar[i];i++;}break;}
default:{goto uwu; break;}
}
escrib(mostrar, vidas);
}
void ahorcado::palab1(int vidas){
int i=0;
char ele[100];
char mostrar[100];
cout<<"Ingrese una palabra:";cin>>ele;
while(i<=50){mostrar[i]=ele[i];i++;}
system("cls");
char error[100];
dibujo(vidas, mostrar, error);
escrib(mostrar, vidas);
}
int main() {
cout<<" ------------------- \n";
cout<<" | | \n";
cout<<" | ";if(puntaje!=0){cout<<"Puntaje:";cout<<puntaje;cout<<"\n";}else{cout<<"\n";}
cout<<" | \n";
cout<<" | \n";
cout<<" | \n";
cout<<" | \n";
cout<<" ------------------- \n";
ahorcado h;
aqui:
int x;
int vidas=4;
cout<<"Quiere jugar 1)contra la maquina o 2)contra otra pesona:";cin>>x;
switch(x){
case 1:{
h.palab(vidas);
break;
}
case 2:{
h.palab1(vidas);
break;
}
default:{
char mostrar[100], error[100];
system("cls");
h.dibujo(vidas, mostrar, error);
cout<<"Ingrese un numero valido\n";
goto aqui;
break;
}
}
cin.get();
cin.get();
}
void ahorcado::volver(bool fal){
if(fal==true){
system("cls");
main();
}
else{
cout<<"Puntaje final:";cout<<puntaje;
int z=0;
cout<<10/z;
}
}