You are on page 1of 10

COLEGIO DE EDUCACION PROFESIONAL TECNICA DEL ESTADO DE VERACRUZ

PLANTEL Lic. Jess Reyes Heroles #165






UNIDAD: 1



NOMBRE DEL ALUMNO: MATRCULA:
ROSA VICTORIA CRUZ ALBERTO 111650147- 7

DOCENTE:
ING. MIGUEL ANGEL RAMOS GRANDE


MDULO:
PROGRAMACION DE VIDEOJUEGOS

CARRERA: GRUPO: SEMESTRE:
Profesional Tcnico en Informtica 603 6




TITULO DE LA INVESTIGACIN O TAREA:

PRACTICA NUMERO 4


Elaborar el juego del ahorcado con mtodo al aleatorio.







OBSERVACIONES:














CALIFICACIN
#include <stdio.h> /* Rutinas est?ndar, 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 deber?amos modificar el n?mero m?ximo de intentos,
porque vamos a dibujar 5 "cosas" cuando se equivoque" */

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 n?mero 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]=
{
"Alemania","Barcelona","rosii","Madrid",
"corazon","pera","casa","cruz",
"america","tuxpan"
};


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: */
{
int j; /* Dibujamos la "persona" */

/* Cabeza */
circle(screen,70,138,8, palette_color[12]);
/* Tronco */
line(screen,70,146,70,160, palette_color[12]);
/* Brazos */
line(screen,50,150,90,150, palette_color[12]);
/* Piernas */
line(screen,70,160,60,175, palette_color[12]);
line(screen,70,160,80,175, palette_color[12]);
}



int main()
{

allegro_init(); /* Inicializamos Allegro */
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 */
srand(time(0)); /* 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 c?mo 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;

/* A?ado 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 fall?, 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();















Para realizar la prctica del ahorcado me apoye con cdigos que investigue en internet,
como tambin los fui modificando, para que el programa lo ejecutara correctamente, en
la imagen siguiente se muestra como escrib las libreras que pertenecen al cdigo, como
son el manejo de cadenas, como tambin declarar variables y asignarles su valor
correspondiente, despus introduje las palabras que quiero que el usuario adivine como
se muestra en la siguiente imagen:

Despus introduje la funcin void para cuando haya un error al adivinar la palabra se
dibuje las partes del ahorcado.
Despus escrib el cdigo para inicializar ALLEGRO y poder acceder al modo grafico como
podemos ver el cdigo en las siguientes imgenes:


Este el cdigo para poder mostrar en pantalla cuantos intento te quedan despus de cada
falla.

En esta imagen podemos ver el cdigo del juego donde va pidiendo una letra conforme va
avanzando el juego hasta que terminen los intentos.

Con este cdigo podemos mandar al usuario que a fallado los intento que ha hecho,
despus si no acert le dice que fall el juego o por el contrario lo felicita por a ver
ganado el juego.

Depuse ya teniendo el cdigo correcto del juego, al momento de ejecutarlos es as como
nos aparece. Tambin podemos observar que nos muestra las letras que llevamos
intentadas en este caso son 4 y nos quedan tres intento.


















Despus podemos ver que al presionar la letra (p) es una letra correcta ya que aparece en
la letra que se quiere adivinar.




















Al poner la letra (n) es una letra incorrecta, que solo nos quedan dos intento como se
muestra en la siguiente imagen:














Y es as como fuimos realizando la prctica numero 4 acertando una palabra y nosotros
como usuarios tenamos que adivinarla.