Está en la página 1de 9

Colegio de Educacin Profesional Tcnica del Estado de

Veracruz

CONALEP N165

Lic. Jess Reyes Heroles

Modulo:
Programacin para videojuegos
Docente:
Miguel ngel Ramos Grande
Alumno:
Emmanuel Alfonso Santiago Daz
604-Info
Practica 4:
Elaborar el juego del ahorcado con mtodo al aleatorio.
Propsito:
Elabora una aplicacin de videojuego genere un
nmero al azar con mtodo al aleatorio, para que con
ese nmero se seleccione una palabra de entre las
predefinidas y sea adivinada por el usuario.






Introduccin:
En esta prctica se cre una pequea representacin del conocido juego
del ahorcado. El programa realiza la seleccin de la palabra mediante
cdigo interno posteriormente el usuario tratara de acertar a la palabra
teniendo 5 oportunidades para adivinarla.
Desarrollo:

1.- llegar al laboratorio,. Escuchar indicaciones generadas por la profesora
2.- posteriormente sacamos nuestro material de trabajo (libreta, lapicero, etc)
Construir un algoritmo para el juego de ahorcado.


en la palabra buscada, se muestra en que posicin se encuentra. o Si no est en
la palabra, le queda un intento menos.



ente parte del "patbulo" del ahorcado.
Despus de terminar con el cdigo ejecutamos un par de veces y nuestro
programa trmino de la siguiente manera

El programa consista en que el usuario tena que introducir un nmero del 1 al 100
para lograr encontrar el nmero que la maquina haba elegido al azar, claro est
solo haba tres oportunidades y si escribas un nmero mayor o menor el programa
te lo indicaba al igual si acertabas o tus intentos estaban agotados.

Cdigo:
#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]=
{
"Alicante","Barcelona","Guadalajara","Madrid",
"Toledo","Malaga","Zaragoza","Sevilla",
"Valencia","Valladolid"
};


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();


Conclusin:
Esta practica mas que nada estuvo un poco tediosa es padre el echo de escribir
palabras tratando de acertar y adivinar la palabra correcta.

También podría gustarte