Heroles Modulo: Manejo de redes Docente: Miguel ngel Ramos Grande Alumna: Karen Lizbeth Nolasco Garca. Manuel Alexis Hurtado Morales. Carrera: Informtica Practica 7: Crear juego mini serpiente 2 usando lenguaje de programacin.
Tuxpan Veracruz de Rodrguez Cano.
Iniciamos alegro para empezar nuestro video juego de la mini serpiente: #include <allegro.h> Definimos posiciones iniciales. #define POS_X_INI 16 #define POS_Y_INI 10 #define INC_X_INI 1 #define INC_Y_INI 0 Realizamos una pausa en milisegundos. #define PAUSA 300 Definimos nuestras teclas a utilizar en este caso sern nmeros de nuestro teclado por lo tanto agregamos _PAD. #define TEC_ARRIBA KEY_8_PAD #define TEC_ABAJO KEY_2_PAD #define TEC_IZQDA KEY_4_PAD #define TEC_DCHA KEY_6_PAD Posicion Actual. int posX, posY; Incremento en la posicion. int incX, incY; Variable que identifica si ha chocado o si ha comido todas las frutas. int terminado; Detecta si pulsamos alguna tecla. int tecla; Define escala entre el tamao del mapa y de la pantalla. #define ESCALA 10 Ancho y alto de los Sprite. #define ANCHOSPRITE 10 #define ALTOSPRITE 10 Filas y columnas a utilizer en nuestro codigo #define MAXFILAS 50 #define MAXCOLS 63 Mapa del video juego, imprimimos pantalla ya que copiando el codigo se desconfigura char mapa[MAXFILAS][MAXCOLS]={
Numero de frutas colocadas en nuestro Videojuego. int numFrutas = 15; Sprites. BITMAP *ladrilloFondo, *comida, *jugador; typedef char tipoSprite[ANCHOSPRITE][ALTOSPRITE]; Matriz tipoSprite spriteLadrillo = {{0,2,2,2,2,2,2,2,2,0}, {2,1,1,1,1,1,1,1,1,2}, {2,1,1,1,1,1,1,1,1,2}, {2,1,1,1,1,1,1,1,1,2}, {2,1,1,1,1,1,1,1,1,2}, {2,1,1,1,1,1,1,1,3,2}, {2,1,1,1,1,1,1,3,3,2}, {2,1,1,1,1,1,3,3,2,2}, {2,2,2,2,2,2,2,2,2,0} };
Rutina de crear los sprite. void creaSprites() { int i, j;
ladrilloFondo = create_bitmap(10, 10); clear_bitmap(ladrilloFondo); for(i=0; i<ANCHOSPRITE; i++) for (j=0; j<ALTOSPRITE; j++) putpixel(ladrilloFondo, i, j, palette_color[ spriteLadrillo[j][i] ]);
comida = create_bitmap(10, 10); clear_bitmap(comida); for(i=0; i<ANCHOSPRITE; i++) for (j=0; j<ALTOSPRITE; j++) putpixel(comida, i, j, palette_color[ spriteComida[j][i] ]);
jugador = create_bitmap(10, 10); clear_bitmap(jugador); for(i=0; i<ANCHOSPRITE; i++) for (j=0; j<ALTOSPRITE; j++) putpixel(jugador, i, j, palette_color[ spriteJugador[j][i] ]);
} Rutina de dibujar el fondo. void dibujaFondo() { int i, j; clear_bitmap(screen); for(i=0; i<MAXCOLS; i++) for (j=0; j<MAXFILAS; j++) { if (mapa[j][i] == 'X') draw_sprite(screen, ladrilloFondo, i*ESCALA, j*ESCALA); if (mapa[j][i] == 'F') draw_sprite(screen, comida, i*ESCALA, j*ESCALA); } } Cuerpo del programa int main() { allegro_init(); install_keyboard(); install_timer(); Entramos a modo Grafico. if (set_gfx_mode(GFX_SAFE, 600, 300, 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; } creaSprites(); dibujaFondo(); Valores iniciales. posX = POS_X_INI; posY = POS_Y_INI; incX = INC_X_INI; incY = INC_Y_INI; Parte repetitiva. do { dibujaFondo(); draw_sprite (screen, jugador, posX*ESCALA, posY*ESCALA); terminado = FALSE; /* Si paso por una fruta: la borro y falta una menos */ if (mapa[posY][posX] == 'F') { mapa[posY][posX] = ' '; numFrutas --; if (numFrutas == 0) { textout(screen, font,"Ganaste!", 100, 90, palette_color[7]); terminado = TRUE; } } Si la serpiente topa con pared, se acabo el juego. if (mapa[posY][posX] == 'X') { textout(screen, font,"Chocaste!", 100, 90, palette_color[7]); terminado = TRUE; } if (terminado) break; Se comprueba si se ha pulsado alguna tecla. if ( keypressed() ) { tecla = readkey() >> 8; switch (tecla) { case TEC_ARRIBA: incX = 0; incY = -1; break; case TEC_ABAJO: incX = 0; incY = 1; break; case TEC_IZQDA: incX = -1; incY = 0; break; case TEC_DCHA: incX = 1; incY = 0; break; } } posX += incX; posY += incY; Pequea pausa antes de continuar. rest ( PAUSA ); } Repetimos indefininamente while (TRUE);
readkey(); return 0; }END_OF_MAIN(); Programa compilado:
Conclusion: en esta practica se llevaron a cabo graficos, y la utilizacion de repeticion tanto pausas y diversos procedimientos nuevos, como la creacion de los ladrilos y las frutas.