Ahorcado en C++

November 23, 2018 | Author: Adrian Magaña | Category: C++, Models Of Computation, Classes Of Computers, Software, Software Development
Share Embed Donate


Short Description

Programa para realizar el juego de ahorcado en c++, esta completo y muy padre....

Description

#include #include #include #include



#define FALLOS_MAXIMO 6 #define ENTRADA_LONG 16 enum boolean {FALSE, TRUE}; /* Conjunto de palabras */ char *palabras[] = {"baloncesto", "tenis de mesa", "programador"}; /* Dibujo del ahorcado */ char dibujo [9][9]; void inicializar_dibujo void seleccionar_palabra int validar_entrada void interfaz  char buffer[][1]); void inicializar_buffer void mostrar_info int esta int acabado void mostrar_dibujo void actualizar_dibujo

(void); (char **oculta, char **verdadera); (char entrada[]); (char **oculta, char **verdadera, char caracter, (char buffer[][1]); (char *oculta, int intentos, char buffer[][1]); (char caracter, char *original); (char *oculta, char *original); (void); (int intentos);

int main() { char *oculta; char *original; int valido; char buffer[26][1]; int intentos = 0; char entrada[ENTRADA_LONG]; /* Inicializar dibujo */ inicializar_dibujo (); /* Buffer de caracteres ingresados */ inicializar_buffer (buffer); seleccionar_palabra (&oculta, &original); while (intentos < FALLOS_MAXIMO) { valido = FALSE; interfaz (&oculta, &original, entrada[0], buffer); while (!valido) { /*system ("clear"); */ mostrar_dibujo(); mostrar_info (oculta, intentos, buffer); if (acabado (oculta, original)) { puts ("\nHa ganado!!");

return 0; } /* Pedimos entrada */ fgets (entrada, ENTRADA_LONG, stdin); valido = validar_entrada (entrada) ; if (!valido) { puts ("Caracter no permitido, pulsa para continuar" ); getchar(); } else { /* Si fallamos se incrementa en contador de fallos y * se actualiza el dibujo */ if (!esta (entrada[0], original)) { intentos++; actualizar_dibujo (intentos); } } } } /* Imprimimos solucion */ printf ("\nFallaste, la palabra era \"%s\"\n", original); return 0; } void actualizar_dibujo (int intentos) { switch (intentos) { case 1 : dibujo[2][7] = 'O'; break; case 2 : dibujo[3][7] = '|'; dibujo[4][7] = '|'; break; case 3: dibujo[3][6] = '/'; break; case 4: dibujo[3][8] = '\\'; break; case 5: dibujo[5][6] = '/'; break; case 6: dibujo[5][8] = '\\'; break; } } /* Mostramos al monigote */ void mostrar_dibujo (void) { int i,j; for (i = 0; i < 9; i++) { printf ("\n"); for (j = 0; j < 9; j++)

printf ("%c", dibujo[i][j]); } printf ("\n"); } /* Iniciar monigote */ void inicializar_dibujo (void) { int i,j; for (i = 0; i < 9; i++) for (j = 0; j < 9; j++) dibujo[i][j] = ' '; for (i = 1; i < 8; i++) dibujo[i][1] = '|'; for (j = 1; j < 8; j++) dibujo[1][j] = '_'; dibujo[7][2] = '_'; dibujo[7][3] = '_'; } /* Verifica si el juego ha terminado */ int acabado (char *oculta, char *original) { int fin = FALSE; if (strcmp(oculta, original) == 0) fin = TRUE; return fin; } /* Verifica si un caracter esta en la palabra */ int esta (char caracter, char *original) { int i; int localizado = FALSE; for (i = 0; (i < strlen(original)) && !localizado; i++) if (caracter == original[i]) localizado = TRUE; return localizado; } /* Mostramos la palabra oculta, los intentos, los caracteres ingresados ..*/ void mostrar_info (char *oculta, int intentos, char buffer[][1]) { char i; /* Mostramos palabra oculta */ printf ("\n\t"); puts (oculta); /* Mostramos caracteres ingresados */ printf ("\n\nCaracteres ingresados: "); for (i = 'a'; i
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF