Proyecto prolog
Creación de Mapas de ejemplo para el juego Plman
Actualizado 4 de febrero de 2010
1
Índice de contenido
1. Ejemplo 1: Mapa sin objetos ni enemigos.......................................................................................3 2. Ejemplo 2: Mapa con enemigos......................................................................................................8 3. Ejemplo 3: Mapa con comportamientos predefinidos...................................................................11 4. Ejemplo 4: Mapa con objetos y reglas de uso predefinidos.........................................................15 5. Ejemplo 5: Mapa con comportamientos propios...........................................................................19 6. Ejemplo 6: Mapa con objetos y reglas de uso propias...................................................................22
2
1. Ejemplo 1: Mapa sin objetos ni enemigos
Supongamos que queremos crear el siguiente mapa (sin objetos ni enemigos): ################### #.................# #..####.....####..# #.................# #....####@####....# #..##.........##..# #..##...###...##..# #.................# ###################Figura 1. Ejemplo de mapa en formato txt. 1. Elegimos un editor de textos y dibujamos (tecleamos) el mapa tal y como lo vemos. Por ejemplo con gedit en Linux, de la siguiente forma:
Figura 2. Mapa de ejemplo en gedit. Una vez dibujado lo guardamos con el nombre mapa_ejemplo1.txt. Importante: Recordar que debe haber el mismo número de caracteres en cada una de las líneas del archivo, procurando que el mapa esté cerrado. 2. Convertimos el mapa en un archivo de código Prolog usando el conversor. Para hacer esto, abrimos un terminal de línea de comandos y nos dirigimos al directorio donde tenemos 3
el conversor (txt2plmap y txt2plmap.cc) y el archivo mapa_ejemplo1.txt que acabamos de guardar (es preferible que ambos estén en el mismo directorio). Una vez allí, ejecutamos el siguiente comando en el terminal: $ ./txt2plmap mapa_ejemplo1.txt
Figura 3. Salida por pantalla del código Prolog para mapa_ejemplo1.txt. Si hay algún error, aparecerá un mensaje de error indicando dónde nos hemos equivocado, de la siguiente forma: “Error en el mapa. Hay filas de distinta longitud. El mapa debe ser cuadrado” En caso de haberlos, corregimos los errores y, cuando la conversión termine con éxito, ejecutamos el siguiente comando para generar el archivo de código prolog: $ ./txt2plmap mapa_ejemplo1.txt > mapa_ejemplo1.pl De esta forma, tendremos en el mismo directorio el fichero mapa_ejemplo1.pl con el código Prolog correspondiente al mapa dibujado. Vamos a analizar cada uno de los hechos y reglas que nos genera el conversor para saber cómo funciona este código. En primer lugar, tenemos el hecho map_format_version(1.0) que nos indica la 4
versión de formato de mapa con la que estamos trabajando (en este caso, la 1.0). Después, aparece el hecho map([['#','#',...]...]) qué, como se ve en el código, es casi una transcripción literal de los caracteres del archivo de texto uno a uno con la modificación de que PlMan ('@') no aparece en map. A continuación de la definición del mapa, tenemos los siguientes 3 hechos: map_size(19,10) que define el tamaño del mapa en 19 columnas y 10 filas, empezando por la 0. mum_dots(91) que establece que el número de cocos del mapa es de 91 en total. pacman_start(9,4) que define la posición inicial de PlMan ('@') en la columna 9, fila 4, empezando por la 0.Después nos encontramos con la regla initMap : addSolidObject('#'). Esta regla es la responsable de definir las paredes del mapa y crear las entidades iniciales (objetos y enemigos). En este caso, lo único que hace es añadir como objeto sólido el carácter '#'. En este caso, el hecho addSolidObject('#') establece el carácter '#' como sólido. Por último, los ...
Regístrate para leer el documento completo.