Fandom

Scratchpad

PLE:Unidad4Ejercicio13

215,933pages on
this wiki
Add New Page
Discuss this page0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

/*
Programa:         Unidad4Ejercicio13.cpp
Fecha:            10/01/2006
Descripción:      Juego del ahorcado.
*/
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <iostream.h>
const int filas=7,cols=8;
const int max_err=8;

int existe_letra(char palabra[], char c, char mascara[]);
void dibuja(char ahorcado[filas][cols],char mascara[],int num_err);

void main()
{
        char ahorcado[filas][cols]= {"",
                                     "|",
                                     "|",
                                     "|",
                                     "|",
                                     "|",
                                     "======="};
	char palabra[80]; // palabra oculta
        char mascara[80]; // Mascara
        char c; // Caracter leido
        int i, num_err=0, acertada=0 ; // contador, numero erroes, palabra acertada
        // Pedimos la palabra a buscar
        cout << endl << "Introduzca uña palabra: ";
        gets(palabra);
        // Rellenamos la mascara
        for(i = 0; i < strlen(palabra); i++)
                mascara[i] = '-';
        mascara[i]='\0';
        // Dibujamos la horca
        dibuja(ahorcado,mascara,num_err);
        // Bucle de juego
        while(num_err < max_err && !acertada)
        {
                cout << "Introduzca una letra ";
                c = getch();
                if(!existe_letra(palabra,c,mascara))
                        num_err++;
                else
                        acertada = strcmp(palabra,mascara)==0;
                dibuja(ahorcado,mascara,num_err);
        }
        if(acertada)
                cout << endl << "¡ ENHORABUENA !" << endl << "Ha ganado ....";
        else
                cout << endl << "¡ LO SIENTO !" << endl << "Ha perdido ....";
        getch();
} //fin programa

int existe_letra(char palabra[], char c, char mascara[])
{
        int i, existe_caracter=0;
        for(i=0; i < strlen(palabra); i++)
        {
                if(c == palabra[i])
                {
                        mascara[i]=c;
                        existe_caracter = 1;
                }
        }
        return existe_caracter;
}

void dibuja(char ahorcado[7][8],char mascara[],int num_err)
{
        char fallo[8][8]={"______ ",
                          "|    | ",
                          "|    O ",
                          "|    |",
                          "|   -|",
                          "|   -|-",
                          "|   / ",
                          "|   / \\"};
        int i;
        if(num_err==1) // Mastil
                strcpy(ahorcado[0],fallo[0]);
        else if(num_err==2) // Soga
                strcpy(ahorcado[1],fallo[1]);
        else if(num_err==3) // cabeza
                strcpy(ahorcado[2],fallo[2]);
        else if(num_err==4) // tronco
                strcpy(ahorcado[3],fallo[3]);
        else if(num_err==5) // Brazo Izq.
                strcpy(ahorcado[3],fallo[4]);
        else if(num_err==6) // Brazos
                strcpy(ahorcado[3],fallo[5]);
        else if(num_err==7) // Pierna izq.
                strcpy(ahorcado[4],fallo[6]);
        else if(num_err==8) // piernas
                strcpy(ahorcado[4],fallo[7]);
        clrscr();
        // Dibujamos el ahorcado
        for(i=0; i < filas; i++)
                cout << ahorcado[i] << endl;
        cout << endl << "Numero de errores = "  << num_err << endl;
        cout << "Palabra = " << mascara << endl;
}

Also on Fandom

Random wikia