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 tamao 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 X X", "X 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 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", "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;
/* Pequea pausa antes de seguir */ rest ( PAUSA );
} while (TRUE); /* Repetimos indefininamente */ /* (la condicin de salida la comprobamos "dentro") */
readkey(); return 0;
}
/* Termino con la "macro" que me pide Allegro */ END_OF_MAIN();
Para realizar la prctica nmero 6 que es crear un juego mini serpiente 1 con uso de mapas. Bueno lo primero que realice, fue crear un nuevo proyecto en (allegro application static) como se muestra en las siguientes pantallas:
Despus me guie con la pgina de Nacho Cabanes encontr un cdigo, lo pase a alegro y conforme lo iba pegando iba modificndole algunas partes que no queran funcionar del todo bien, para empezar insert las libreras correspondientes como se pueden ver en la siguiente imagen:
Despus de a ver modificado el cdigo lo ejecute para ver si estaba correcto, como se muestra en la siguiente imagen donde lo guarde como main:
En esta imagen se puede ver cmo se va ejecutando el programa:
Esta es la imagen donde muestra como es el resultado del cdigo de la serpiente, slo que tiene un pequeo error ya que la prctica dice que la serpiente no tiene que comer frutas y en esta imagen si las tiene:
Para corregir el error me fui directo al cdigo del juego borre las letras (F) que eran las frutas para que al momento de ejecutarlo no me aparecieran y coloque unos puntos y comas que me hacan falta en el cdigo:
Para dar por terminada la prctica, ejecute el programa este es el resultado de la mini serpiente: