Proyecto Pacman-Clips

2,090 views

Published on

Proyecto Fin de Carrera de Juan Antonio Romero García para la titulación de Ingeniería Técnica en Informática de Gestión.

Fue presentado el 20 de diciembre de 2013 y obtuvo la calificación de Sobresaliente.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,090
On SlideShare
0
From Embeds
0
Number of Embeds
72
Actions
Shares
0
Downloads
65
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Proyecto Pacman-Clips

  1. 1. Proyecto Pacman-Clips Juan A. Romero García Dirigido por: Lawrence Mandow Andaluz Realizado por: Málaga, Diciembre 2013
  2. 2. Pacman-Clips • • • • • • • Introducción El juego del Pacman Tecnologías Comportamientos La aplicación Pacman-Clips Demo Conclusiones
  3. 3. Introducción PRÓLOGO • Anteproyecto aprobado en el 2001. • El grueso del proyecto se realizó durante ese año 2001. • Situación personal – Incorporación al mercado laboral: • • • • Coritel (2001-2004) Empresa propia (2004-2007) Política y trabajo en el Ayuntamiento de Pizarra (2007-2011) Dinamizador de Telecentro (2011 hasta la actualidad)
  4. 4. Introducción PRÓLOGO • Situación personal – La familia aumenta: esposa y 3 hijos • No se puede dejar más: Plan Bolonia y delicada situación laboral actual
  5. 5. Introducción OBJETIVOS • El proyecto consiste en desarrollar un juego basado en el clásico Pacman o “comecocos” (en Visual Basic) donde los fantasmas tendrán un comportamiento inteligente basado en reglas (Clips). • El programa resultante puede servir como base de prácticas para las asignaturas de Inteligencia Artificial o Sistemas Expertos.
  6. 6. Introducción ANTECEDENTES • El único antecedente de la integración entre Visual Basic y Clips es una aplicación muy simple sobre los movimientos que tiene que realizar un mono para comerse unas bananas. • Fue realizado con VB5 y en este proyecto se ha usado la versión 6.
  7. 7. Introducción • El programa recibe un fichero con unas reglas y un estado inicial y genera los movimientos que debe realizar el mono. • En nuestro caso además debemos tener en cuenta el movimiento del Pacman por parte del jugador/a.
  8. 8. Introducción APORTACIÓN DEL PROYECTO • Demostrar la utilidad de los lenguajes basados en reglas en problemas cercanos a nosotros resolviendo situaciones concretas. • Crear un sistema abierto para que cualquier alumno/a de la Universidad pueda realizar pruebas. • Demostrar que lenguajes de programación con filosofías diferentes (orientados a objetos vs. interpretados) pueden utilizarse conjuntamente para resolver determinados problemas y convivir dentro de una aplicación mayor.
  9. 9. Pacman-Clips • Introducción • El juego del Pacman • • • • • Tecnologías Comportamientos La aplicación Pacman-Clips Demo Conclusiones
  10. 10. El juego del Pacman
  11. 11. El juego del Pacman • El juego del Pacman es el videojuego de arcade más exitoso de todos los tiempos. • Fue creado a principios de los años 80. • El protagonista del juego Pacman o comecocos es un círculo amarillo al que le falta un sector por lo que parece tener boca. • El juego consiste en comer unos puntos repartidos por laberintos.
  12. 12. El juego del Pacman • Existen cuatro fantasmas que recorren el laberinto para tratar de comerse al Pacman. • También existen cuatro puntos más grandes de lo normal situados en las esquinas del laberinto que proporcionan al Pacman la habilidad temporal de comerse a los fantasmas.
  13. 13. El juego del Pacman • Los cuatro fantasmas no son iguales, además de tener diferente color también suelen tener diferente personalidad. • Más información en http://es.wikipedia.org/wiki/Pac-Man • Google celebró el 30 aniversario del Pacman con un Doodle especial: https://www.google.com/doodles/30thanniversary-of-pac-man
  14. 14. Pacman-Clips • Introducción • El juego del Pacman • Tecnologías • • • • Comportamientos La aplicación Pacman-Clips Demo Conclusiones
  15. 15. Tecnologías ESTUDIO PREVIO • Esquema básico de la aplicación: Visual Basic DLL CLIPS
  16. 16. Tecnologías • La clave de la aplicación es la integración entre dos lenguajes de programación como son Visual Basic (diseño del juego y manejo del comportamiento del usuario) con CLIPS (comportamiento de los fantasmas) a través de una biblioteca enlaces dinámicos o DLL’s.
  17. 17. Tecnologías VISUAL BASIC • Con Visual Basic se crea la interfaz gráfica del juego • El diseño se realiza con formularios, donde uno de ellos es el juego en sí. • El resto son formularios para personalizar las diferentes opciones del juego o para emitir informes.
  18. 18. Tecnologías CLIPS • CLIPS (C Language Integrated Production System) es una herramienta de procesado simbólico utilizada principalmente para el desarrollo de Sistemas Expertos. • Los Sistemas Expertos son programas que manipulan el conocimiento codificado para resolver problemas en un dominio especializado que normalmente requieren de experiencia humana (un experto).
  19. 19. Tecnologías CLIPS • Son programas que contienen tanto conocimiento declarativo (hechos acerca de objetos, eventos y situaciones) como conocimiento de control (información acerca de los cursos de una acción) para emular el proceso de razonamiento de los expertos humanos en un dominio particular o área de experiencia. • Nuestros fantasmas van a tener conocimiento del laberinto y van a saber moverse dentro de él para capturar al Pacman.
  20. 20. Tecnologías CLIPS • Arquitectura de un Sistema Experto:
  21. 21. Tecnologías CLIPS La arquitectura de un S.E. está compuesta por: • Base de Conocimiento (reglas). • Motor de Inferencia (búsqueda y selección de las reglas) -> razonamiento • Memoria de Trabajo (base de hechos) • Interfaz de Usuario (de CLIPS no, diseño en VB) • Generador de Explicaciones (inteligente con seguimiento) • Subsistema de adquisición de conocimiento (en la modalidad de juego Inteligente con Seguimiento)
  22. 22. Tecnologías • El constructor fundamental es el “defrule” para definir reglas, el “deftemplate” para construir hechos y el “deffacts” para insertar hechos en la memoria de trabajo. • Ejemplo de regla: (defrule cambia-de-fase-dentro-fantasma "Cambia de la fase comer-pacman a la de buscar-pacman" (declare (salience 5)) (not (bola-gorda-comida)) (fantasma-no-movido) ?fase <- (fase comer-pacman) => (retract ?fase) (assert (fase buscar-pacman)) (printout wdisplay "cambia-de-fase-dentro-fantasma" crlf) )
  23. 23. Tecnologías DLL ¿Qué es una DLL? • Es una biblioteca de enlaces dinámicos (Dynamic Library Link), es decir un archivo que contiene funciones que se pueden llamar desde aplicaciones o desde otra DLL. • Son independientes del lenguaje de programación y no pueden ejecutarse directamente.
  24. 24. Tecnologías • Las DLL permiten agrupar el código de nuestro programa en módulos separados. • Normalmente tienen la extensión .dll aunque también existen con la extensión .exe • El sistema operativo Windows ha adoptado el método de bibliotecas de enlaces dinámicos como una manera estándar para crear nuevas funcionalidades que pueda compartirse en el sistema.
  25. 25. Tecnologías DLL ¿Para qué sirven las DLL? • Si programas distintos usan la misma DLL, ésta se abre en memoria sólo una vez. • Se puede reemplazar una versión distinta de una DLL sin necesidad de compilar.
  26. 26. Tecnologías DLL ¿Diferencias entre archivos DLL y EXE? • Una DLL cuando está en la memoria no es un programa en ejecución sino solamente una colección de procedimientos y funciones que otros programas pueden llamar. • La librería no crea su propia pila en la memoria sino que utiliza la pila del programa que la llama.
  27. 27. Tecnologías DLL ¿Cómo usar la DLL de CLIPS? • Debemos utilizar un módulo de Visual Basic compuesto por funciones que hacen llamadas a la DLL y simulan la instrucción en CLIPS. • Al ser una función, estas llamadas nos devuelven un resultado que nos indica si se ha ejecutado correctamente o no.
  28. 28. Tecnologías Ejemplo: En un módulo llamado HLLdecl.bas) tenemos las funciones: Declare Function HLL_RUN Lib “CLIPSHLL.DLL” (ByVal Iterations As Long) As Long ……. Que se llama así: Retval = HLL_RUN(-1) Donde Retval obtiene el número de iteraciones realizadas en CLIPS.
  29. 29. Tecnologías
  30. 30. Pacman-Clips • Introducción • El juego del Pacman • Tecnologías • Comportamientos • La aplicación Pacman-Clips • Demo • Conclusiones
  31. 31. Comportamientos 2 MODALIDADES DE JUEGO • Juego Normal • Juego Inteligente (y con Seguimiento) CLASIFICACIÓN MOVIMIENTOS FANTASMAS • Agresivos • Pasivos • Según la personalidad (sólo para juego Inteligente)
  32. 32. Comportamientos MODALIDADES DE JUEGO • Juego Normal • Los fantasmas se mueven de forma aleatoria • Esta modalidad está pensada para crear una base del juego y poder incorporar funcionalidades
  33. 33. Comportamientos MODALIDADES DE JUEGO • Juego Normal • Los fantasmas se mueven de forma aleatoria • Esta modalidad está pensada para crear una base del juego y poder incorporar funcionalidades • Juego Inteligente • 3 personalidades diferentes de los fantasmas: – Iguales movimientos que el Pacman – “Cabezón” – Directo
  34. 34. Comportamientos JUEGO INTELIGENTE • Iguales Movimientos • El fantasma se mueve en la misma dirección que el Pacman si es posible, en otro caso lo hace de forma aleatoria • “Cabezón” • El fantasma elige un movimiento y no lo cambia. • Si no puede: Iguales Movimientos • Directo • Compara su situación y la del Pacman e intenta alcanzarlo en el menor nº de movimientos
  35. 35. Comportamientos CLASIFICACIÓN DE MOVIMIENTOS • Agresivos • El fantasma trata de comerse al Pacman porque está a su lado (independientes personalidad) • Pasivos • Son movimientos de huida porque el Pacman ha tomado una bola de energía • Según la personalidad • Movimientos que desarrollan la estrategia elegida por el jugador
  36. 36. Comportamientos JUEGO INTELIGENTE CON SEGUIMIENTO • Es como si el juego se congelase para poder consultar la memoria de trabajo de CLIPS (hechos almacenados y reglas ejecutadas). • Es la interfaz desarrollada para ver el estado de nuestra ejecución en CLIPS. • Se ha incorporado un botón junto al laberinto de juego para realizar el seguimiento.
  37. 37. Pacman-Clips • • • • Introducción El juego del Pacman Tecnologías Comportamientos • La aplicación Pacman-Clips • Demo • Conclusiones
  38. 38. La aplicación Pacman-Clips
  39. 39. La aplicación Pacman-Clips Personalización del juego con los menús: • Juego • Configuración • Ayuda
  40. 40. La aplicación Pacman-Clips Menú Configuración • Sonido (sí/no) • Elección de los fantasmas
  41. 41. La aplicación Pacman-Clips Menú Configuración • Sonido (sí/no) • Elección de los fantasmas • Elección personalidad fantasmas
  42. 42. La aplicación Pacman-Clips Menú Configuración • Sonido (sí/no) • Elección de los fantasmas • Elección personalidad de los fantasmas • Ficheros Clips
  43. 43. Pacman-Clips • • • • • Introducción El juego del Pacman Tecnologías Comportamientos La aplicación Pacman-Clips • Demo • Conclusiones
  44. 44. Demo
  45. 45. Demo Ejecuciones para la demostración • Juego Normal (4 fantasmas) • Juego Inteligente con movimientos iguales (1 fantasma) • Inteligente con movimiento “cabezón” (1 fantasma) • Inteligente con movimiento directo (1 fantasma) • Inteligente con seguimiento y movimiento directo (1 fantasma) • Inteligente con seguimiento (4 fantasmas con personalidades diferentes)
  46. 46. Pacman-Clips • • • • • • Introducción El juego del Pacman Tecnologías Comportamientos La aplicación Pacman-Clips Demo • Conclusiones
  47. 47. Conclusiones • Proyecto bonito, ameno, útil, ampliable y mejorable. • Se han conseguido los objetivos previstos: – Integración de dos lenguajes de programación diferentes – Sistema abierto para desarrollar prácticas (nuevas personalidades de los fantasmas)
  48. 48. Conclusiones • Posibles mejoras: – Más personalidades para los fantasmas y laberintos más difíciles. Además de la aparición de frutas (puntos extras). – Reimplementación orientada a objetos del código – Utilización de otros lenguajes de programación como JESS (nuevo CLIPS para Java).
  49. 49. Proyecto Pacman-Clips GRACIAS

×