NOMBRES: ARLETTE LEDESMA TELESFORO EMMANUEL ALFONSO SANTIAGO DIAZ
GRUPO: 604
CARRERA: INFORMATICA
CONTENIDO: PRACTICA 6 : Crea juego Mini Serpiente 1 con uso de Mapas.PROPOSITO. DESARROLLO. CONCLUSION. OBSERVACIONES:__________________________________________________ __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ __________________________________________________________ BLOG:
FECHA: 31- MAYO-2014
PRACTICA 6 : Crea juego Mini Serpiente 1 con uso de Mapas. Prposito.- Elabora una aplicacin de videojuego con uso de Mapas para que una figura avance por la pantalla; si choca con la pared exterior, con su propia "cola" o con algn otro obstculo, muere. #include <allegro.h> /* Posiciones X e Y iniciales */ #define POS_X_INI 16 #define POS_Y_INI 10
#define INC_X_INI 1 #define INC_Y_INI 0
/* Pausa en milisegundos entre un "fotograma" y otro */ #define PAUSA 350
int posX, posY; /* Posicion actual */ int incX, incY; /* Incremento de la posicion */
/* Terminado: Si ha chocado o comida todas las frutas */ int terminado;
/* La tecla pulsada */ int tecla;
/* Escala: relacion entre tama?o de mapa y de pantalla */ #define ESCALA 10
/* Ancho y alto de los sprites */ #define ANCHOSPRITE 10 #define ALTOSPRITE 10
/* Y el mapa que representa a la pantalla */ /* Como usaremos modo grafico de 320x200 puntos */ /* y una escala de 10, el tablero medira 32x20 */ #define MAXFILAS 20 #define MAXCOLS 32
char mapa[MAXFILAS][MAXCOLS]={ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "X X X", "X F X X", "X F X X", "X XXXXX X X", "X X X X", "X X X X X", "X X X X X", "X X X X", "X X X X", "X X X X", "X F X X", "X X X", "X X F X", "X X X X", "X X X X", "X X F X X", "X F X X X", "X X F X", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" };
/* 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[14]); terminado = TRUE; } }
/* Si choco con la pared, se acabo */ if (mapa[posY][posX] == 'X') { textout(screen, font, "Chocaste!", 100, 90, palette_color[13]); terminado = TRUE; }
if (terminado) break;
/* Compruebo 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;
/* Peque?a pausa antes de seguir */ rest ( PAUSA );
} while (TRUE); /* Repetimos indefininamente */ /* (la condici?n de salida la comprobamos "dentro") */
readkey(); return 0;
}
/* Termino con la "macro" que me pide Allegro */ END_OF_MAIN(); Pantalla de ejucucion.- muestra cuando ganastes.-
Muestra cuando has perdido en el momento de chocar.- Muestra cuando has perdidio
Conclusin esta practica fue fcil al realizar ya que no se dificulto un poco pero obtuvimos ayuda en algunas paginas.