Pacman-Clips Introduccin El juego del Pacman Tecnologas Comportamientos La aplicacin Pacman-Clips Demo Conclusiones Introduccin PRLOGO Anteproyecto aprobado en el 2001. El grueso del proyecto se realiz durante ese ao 2001. Situacin personal Incorporacin al mercado laboral: Coritel (2001-2004) Empresa propia (2004-2007) Poltica y trabajo en el Ayuntamiento de Pizarra (2007-2011) Dinamizador de Telecentro (2011 hasta la actualidad) Introduccin PRLOGO Situacin personal La familia aumenta: esposa y 3 hijos No se puede dejar ms: Plan Bolonia y delicada situacin laboral actual Introduccin OBJETIVOS El proyecto consiste en desarrollar un juego basado en el clsico Pacman o comecocos (en Visual Basic) donde los fantasmas tendrn un comportamiento inteligente basado en reglas (Clips). El programa resultante puede servir como base de prcticas para las asignaturas de Inteligencia Artificial o Sistemas Expertos. Introduccin ANTECEDENTES El nico antecedente de la integracin entre Visual Basic y Clips es una aplicacin 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 versin 6. Introduccin El programa recibe un fichero con unas reglas y un estado inicial y genera los movimientos que debe realizar el mono. En nuestro caso adems debemos tener en cuenta el movimiento del Pacman por parte del jugador/a. Introduccin APORTACIN 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 programacin con filosofas diferentes (orientados a objetos vs. interpretados) pueden utilizarse conjuntamente para resolver determinados problemas y convivir dentro de una aplicacin mayor. Pacman-Clips Introduccin El juego del Pacman Tecnologas Comportamientos La aplicacin Pacman-Clips Demo Conclusiones El juego del Pacman El juego del Pacman El juego del Pacman es el videojuego de arcade ms exitoso de todos los tiempos. Fue creado a principios de los aos 80. El protagonista del juego Pacman o comecocos es un crculo amarillo al que le falta un sector por lo que parece tener boca. El juego consiste en comer unos puntos repartidos por laberintos. El juego del Pacman Existen cuatro fantasmas que recorren el laberinto para tratar de comerse al Pacman.
Tambin existen cuatro puntos ms
grandes de lo normal situados en las esquinas del laberinto que proporcionan al Pacman la habilidad temporal de comerse a los fantasmas. El juego del Pacman Los cuatro fantasmas no son iguales, adems de tener diferente color tambin suelen tener diferente personalidad. Ms informacin en http://es.wikipedia.org/wiki/Pac-Man Google celebr el 30 aniversario del Pacman con un Doodle especial: https://www.google.com/doodles/30th- anniversary-of-pac-man Pacman-Clips Introduccin El juego del Pacman Tecnologas Comportamientos La aplicacin Pacman-Clips Demo Conclusiones Tecnologas ESTUDIO PREVIO Esquema bsico de la aplicacin:
Visual Basic CLIPS
DLL Tecnologas
La clave de la aplicacin es la integracin
entre dos lenguajes de programacin como son Visual Basic (diseo del juego y manejo del comportamiento del usuario) con CLIPS (comportamiento de los fantasmas) a travs de una biblioteca enlaces dinmicos o DLLs. Tecnologas VISUAL BASIC Con Visual Basic se crea la interfaz grfica del juego El diseo 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. Tecnologas CLIPS CLIPS (C Language Integrated Production System) es una herramienta de procesado simblico 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). Tecnologas CLIPS Son programas que contienen tanto conocimiento declarativo (hechos acerca de objetos, eventos y situaciones) como conocimiento de control (informacin acerca de los cursos de una accin) 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. Tecnologas CLIPS Arquitectura de un Sistema Experto: Tecnologas CLIPS La arquitectura de un S.E. est compuesta por: Base de Conocimiento (reglas). Motor de Inferencia (bsqueda y seleccin de las reglas) -> razonamiento Memoria de Trabajo (base de hechos) Interfaz de Usuario (de CLIPS no, diseo en VB) Generador de Explicaciones (inteligente con seguimiento) Subsistema de adquisicin de conocimiento (en la modalidad de juego Inteligente con Seguimiento) Tecnologas 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) ) Tecnologas DLL Qu es una DLL? Es una biblioteca de enlaces dinmicos (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 programacin y no pueden ejecutarse directamente. Tecnologas Las DLL permiten agrupar el cdigo de nuestro programa en mdulos separados. Normalmente tienen la extensin .dll aunque tambin existen con la extensin .exe El sistema operativo Windows ha adoptado el mtodo de bibliotecas de enlaces dinmicos como una manera estndar para crear nuevas funcionalidades que pueda compartirse en el sistema. Tecnologas DLL Para qu sirven las DLL? Si programas distintos usan la misma DLL, sta se abre en memoria slo una vez. Se puede reemplazar una versin distinta de una DLL sin necesidad de compilar. Tecnologas DLL Diferencias entre archivos DLL y EXE? Una DLL cuando est en la memoria no es un programa en ejecucin sino solamente una coleccin de procedimientos y funciones que otros programas pueden llamar. La librera no crea su propia pila en la memoria sino que utiliza la pila del programa que la llama. Tecnologas DLL Cmo usar la DLL de CLIPS? Debemos utilizar un mdulo de Visual Basic compuesto por funciones que hacen llamadas a la DLL y simulan la instruccin en CLIPS. Al ser una funcin, estas llamadas nos devuelven un resultado que nos indica si se ha ejecutado correctamente o no. Tecnologas Ejemplo:
En un mdulo 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 nmero de iteraciones realizadas en CLIPS. Tecnologas Pacman-Clips Introduccin El juego del Pacman Tecnologas Comportamientos La aplicacin Pacman-Clips Demo Conclusiones Comportamientos 2 MODALIDADES DE JUEGO Juego Normal Juego Inteligente (y con Seguimiento)
CLASIFICACIN MOVIMIENTOS FANTASMAS
Agresivos Pasivos Segn la personalidad (slo para juego Inteligente) 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 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 Cabezn Directo Comportamientos JUEGO INTELIGENTE Iguales Movimientos El fantasma se mueve en la misma direccin que el Pacman si es posible, en otro caso lo hace de forma aleatoria Cabezn El fantasma elige un movimiento y no lo cambia. Si no puede: Iguales Movimientos Directo Compara su situacin y la del Pacman e intenta alcanzarlo en el menor n de movimientos Comportamientos CLASIFICACIN 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 energa Segn la personalidad Movimientos que desarrollan la estrategia elegida por el jugador 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 ejecucin en CLIPS. Se ha incorporado un botn junto al laberinto de juego para realizar el seguimiento. Pacman-Clips Introduccin El juego del Pacman Tecnologas Comportamientos La aplicacin Pacman-Clips Demo Conclusiones La aplicacin Pacman-Clips La aplicacin Pacman-Clips Personalizacin del juego con los mens: Juego Configuracin Ayuda La aplicacin Pacman-Clips Men Configuracin Sonido (s/no) Eleccin de los fantasmas La aplicacin Pacman-Clips Men Configuracin Sonido (s/no) Eleccin de los fantasmas Eleccin personalidad fantasmas La aplicacin Pacman-Clips Men Configuracin Sonido (s/no) Eleccin de los fantasmas Eleccin personalidad de los fantasmas Ficheros Clips Pacman-Clips Introduccin El juego del Pacman Tecnologas Comportamientos La aplicacin Pacman-Clips Demo Conclusiones Demo Demo Ejecuciones para la demostracin Juego Normal (4 fantasmas) Juego Inteligente con movimientos iguales (1 fantasma) Inteligente con movimiento cabezn (1 fantasma) Inteligente con movimiento directo (1 fantasma) Inteligente con seguimiento y movimiento directo (1 fantasma) Inteligente con seguimiento (4 fantasmas con personalidades diferentes) Pacman-Clips Introduccin El juego del Pacman Tecnologas Comportamientos La aplicacin Pacman-Clips Demo Conclusiones Conclusiones Proyecto bonito, ameno, til, ampliable y mejorable. Se han conseguido los objetivos previstos: Integracin de dos lenguajes de programacin diferentes Sistema abierto para desarrollar prcticas (nuevas personalidades de los fantasmas) Conclusiones Posibles mejoras: Ms personalidades para los fantasmas y laberintos ms difciles. Adems de la aparicin de frutas (puntos extras). Reimplementacin orientada a objetos del cdigo Utilizacin de otros lenguajes de programacin como JESS (nuevo CLIPS para Java). Proyecto Pacman-Clips