Está en la página 1de 5

Colegio de Educacin Profesional Tcnica del Estado de Veracruz

"Lic. Jess Reyes Heroles"








Alumno: Victor Javier Garcia Medina




Grupo: 604 Carrera: Informtica




Modulo:

"Programacin para videojuegos"



Psp: Miguel ngel Ramos Grande



















Practica 4:
Elaborar el juego del ahorcado con mtodo aleatorio
Propsito de la prctica:
Elabora una aplicacin de videojuego genera un numero al azar con mtodo aleatorio, para que con ese nmero se seleccione una
palabra de entre las predefinidas y sea adivinada por el usuario
Para empezar con esta prctica mi compaero y yo analizamos el cdigo, el cual trata de el juego del ahorcado, para ello utilizamos
mtodos con la funcin rand, la indicacin es la siguiente, la persona que lo juegue va a tener las oportunidades que se necesiten para
atinarle a la palabra:
Este es el cdigo completo:
#include <stdio.h> /* Rutinas estndar, 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
/* Es preciso tomar en cuenta que solo se le darn 5 oportunidades pues solo sern 5 cosas las que se dibujaran*/
char palabra[80], intento[80], letras[80];
/* La palabra a adivinar, la que el jugador va consiguiendo y las letras que se han probado */
int oportunidades; /*Cantidad de intentos permitido */
char letra; /* Cada letra que prueba el jugador */
int i; /* Para mirar cada letra, con "for" */
int acertado; /* Si ha acertado alguna letra */
char ficticia[2]; /* Aux, para aadir letra a cadena */
char mensaje[80]; /* Los letreros que mostrar en pantalla */
char datosPalabras [NUMPALABRAS][80]=
{
Sugey , Victor,Hola, Adios, Computadoras, Ramos, corazn
};
void PrimerFallo() /* Primer fallo: Dibujamos la "plataforma" */
{
line(screen,20,180,120,180, palette_color[13]);
line(screen,100,180,100,125, palette_color[13]);
line(screen,100,125,70,125, palette_color[13]);
line(screen,70,125,70,130, palette_color[13]);
}
void SegundoFallo() /* Segundo fallo */
{
/* Cabeza */
circle(screen,70,138,8, palette_color[12]);
}
void TercerFallo() /* Tercer fallo*/
{
/* Tronco */
line(screen,70,146,70,160, palette_color[12]);
}
void CuartoFallo() /* Cuarto fallo */
{
/* Brazos */
line(screen,50,150,90,150, palette_color[12]);
}
void QuintoFallo() /* Quinto fallo: */
{
int j;










/* 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 no hay error: comenzamos con 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);


/* Se dibuja las partes segun se valla equivocando */
if (oportunidades <=4) PrimerFallo();
if (oportunidades <=3) SegundoFallo();
if (oportunidades <=2) TercerFallo();
if (oportunidades <=1) CuartoFallo();

/* Se muestran los intentos restantes */
textprintf(screen, font, 80,18, palette_color[15],
"Te quedan %d intentos", oportunidades);


/* Se le muestra como va */
textprintf(screen, font, 80,32, palette_color[15],
intento, oportunidades);

/* Se muestran las letras intentadas */
textprintf(screen, font, 20,72, palette_color[14],
"Letras intentadas: %s", letras);

/* Aqu se le pie una letra ms */
textprintf(screen, font, 20,60, palette_color[14],
"Que letra?");

letra = readkey()&0xff;

/* Aade esa letra a las tecleadas*/
strcpy (ficticia,"a"); /* Usando una cadena de texto aux */
ficticia[0]= letra;
strcat (letras, ficticia);

acertado = 0; /* Se checa si el usuario acerto */
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 falla, se le resta un intento */
oportunidades --;

}
while ( strcmp (intento,palabra) /* Se repite hasta que acierte */
&& (oportunidades>0)); /* osus oportunidades se agoten*/


/* Se le felicita o en caso contrario se muestra la palabra correcta */

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:
Creo que, en la pgina que asigna la gua para esta prctica viene muy bien explicado el procedimiento de dicho cdigo, pero se nos
dificulto muchsimo, as que accedimos a la ayuda de algunos compaeros para que fuera satisfactorio, pero despus del estrs que
sentamos, por fin sali.

También podría gustarte