Sie sind auf Seite 1von 49

Proyecto Pacman-Clips

Realizado por: Juan A. Romero Garca


Dirigido por: Lawrence Mandow Andaluz

Mlaga, Diciembre 2013


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

GRACIAS

Das könnte Ihnen auch gefallen