Está en la página 1de 4

CONALEP #165

LIC. JESUS REYES HEROLES





Docente:
Miguel ngel Ramos Grande
Alumno:
Brenda Cruz Mata
Jorge Alberto Hernndez Rojas
Francisco Javier Flores Roman
Modulo:
Manejo de Redes
Grupo:
604 Informtica

PRACTICA 4 Elaborar el juego del Ahorcado


Propsito de la prctica:

La idea bsica de lo que tiene que hacer el juego es generar un
nmero al azar, y con ese nmero escoger una palabra de entre las
Predefinidas. Esa es la palabra que deber adivinar el usuario.

Introduccin:
En esta prctica elaboraremos un videojuego de ahorcado, generando nmeros al
azar para que selecciones una palabra, y tratar de adivinarla.




Desarrollo:
Bibliotecas:
#include <stdio.h> /* Rutinas estandar, como "printf" */
#include <string.h> /* Manejo de cadenas */
#include <stdlib.h> /* Para "rand" */
#include <time.h> /* Para "time" */
#include <ctype.h> /* Para "tolower" */
#include <allegro.h>
#define NUMPALABRAS 10
#define MAXINTENTOS 5 /* No debemos modificar el numero maximo de intentos, porque
vamos a dibujar 5 "cosas" cuando se equivoque" */
Variables
char palabra[80], intento[80], letras[80]; /* La palabra a adivinar, la que el jugador 2 va
consiguiendo y las letras que se han probado */
int oportunidades; /* El numero de intentos permitido */
char letra; /* Cada letra que prueba el jug. dos */
int i; /* Para mirar cada letra, con "for" */
int acertado; /* Si ha acertado alguna letra */
char ficticia[2]; /* Aux, para a?adir letra a cadena */
char mensaje[80]; /* Los letreros que mostrar en pantalla */
char datosPalabras [NUMPALABRAS][80]=
{
"yaritsa","katya","brenda","diana",
"francisco","alberto","carlos","yuliana",
"lucia","jorge"
};
void PrimerFallo() /* Primer fallo: Dibujamos la "plataforma" */
{
line(screen,20,180,120,180, palette_color[13]);
}
void SegundoFallo() /* Segundo fallo: Dibujamos el "palo vertical" */
{
line(screen,100,180,100,125, palette_color[13]);
}
void TercerFallo() /* Tercer fallo: Dibujamos el "palo superior" */
{
line(screen,100,125,70,125, palette_color[13]);
}
void CuartoFallo() /* Cuarto fallo: Dibujamos la "cuerda" */
{
line(screen,70,125,70,130, palette_color[13]);
}
void QuintoFallo() /* Quinto fallo: */
{
Dibujo de la persona
int j;
circle(screen,70,138,8, palette_color[12]); /* Cabeza */
line(screen,70,146,70,160, palette_color[12]); /* Tronco */
line(screen,50,150,90,150, palette_color[12]); /* Brazos */
line(screen,70,160,60,175, palette_color[12]); /* Piernas */
line(screen,70,160,80,175, palette_color[12]);
}
Iniciamos alegro
int main()
{
allegro_init();
install_keyboard(); /* Intentamos entrar a modo grafico */
if (set_gfx_mode(GFX_SAFE,320,200,0,0)!=0){set_gfx_mode(GFX_TEXT,0,0,0,0);
allegro_message("Incapaz de entrar a modo grafico\n%s\n", allegro_error);
return 1;
}
/* Si todo ha ido bien: empezamos Valores iniciales */
strcpy(palabra, datosPalabras[ rand()%(NUMPALABRAS+1)]);
oportunidades = MAXINTENTOS;
strcpy(letras,"");
/* Relleno con _ y " " lo que ve Jug. 2 */
for (i=1; i<=strlen(palabra); i++)
if (palabra[i-1]==' ' )
intento[i-1]=' ';
else
intento[i-1]='_';
intento[i]='\0'; /* Y aseguro que termine correctamente */
/* Parte repetitiva: */
do {
clear_bitmap(screen);
/* Dibujo lo que corresponde del "patibulo" */
if (oportunidades <=4) PrimerFallo();
if (oportunidades <=3) SegundoFallo();
if (oportunidades <=2) TercerFallo();
if (oportunidades <=1) CuartoFallo();
/* Digo cuantos intentos le quedan */
textprintf(screen, font, 80,18, palette_color[15],
"Te quedan %d intentos", oportunidades);
/* Le muestro como va */
textprintf(screen, font, 80,32, palette_color[15],
intento, oportunidades);
/* Las letras intentadas */
textprintf(screen, font, 20,72, palette_color[14],
"Letras intentadas: %s", letras);
/* Y le pido otra letra */
textprintf(screen, font, 20,60, palette_color[14], "Que letra?");

letra = readkey()&0xff;
/* Aado esa letra a las tecleadas*/
strcpy (ficticia,"a"); /* Usando una cadena de texto aux */
ficticia[0]= letra;
strcat (letras, ficticia);
acertado = 0; /* Miro a ver si ha acertado */
for (i=1; i<=strlen(palabra); i++)
if(tolower(letra)== tolower(palabra[i-1]))
{
intento[i-1]= palabra[i-1];
acertado = 1;
}
if (! acertado ) /* Si fallo, le queda un intento menos */
oportunidades --;
}
while ( strcmp (intento,palabra) /* Hasta que acierte */
&& (oportunidades>0)); /* o gaste sus oportunidades */
/* Le felicito o le digo cual era */
if ( strcmp (intento,palabra)==0)
textprintf(screen, font, 20,100, palette_color[11],
"Acertaste!");
else
{
textprintf(screen, font, 20,100, palette_color[11],
"Lo siento. Era: %s", palabra);
QuintoFallo();
}
readkey();
return 0;
}
/* Termino con la "macro" que me pide Allegro */
END_OF_MAIN();
Conclusin:
En esta prctica el nico problema que se me presento fue que no quera correr el
programa as que tuve que crear un nuevo proyecto y pase el cdigo.

También podría gustarte