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;
/* 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 */
/* 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.