SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
Proyecto Pacman-Clips
Juan A. Romero García
Dirigido por: Lawrence Mandow Andaluz
Realizado por:

Málaga, Diciembre 2013
Pacman-Clips
•
•
•
•
•
•
•

Introducción
El juego del Pacman
Tecnologías
Comportamientos
La aplicación Pacman-Clips
Demo
Conclusiones
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)
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
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.
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.
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.
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.
Pacman-Clips
• Introducción

• El juego del Pacman
•
•
•
•
•

Tecnologías
Comportamientos
La aplicación Pacman-Clips
Demo
Conclusiones
El juego del Pacman
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.
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.
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
Pacman-Clips
• Introducción
• El juego del Pacman

• Tecnologías
•
•
•
•

Comportamientos
La aplicación Pacman-Clips
Demo
Conclusiones
Tecnologías
ESTUDIO PREVIO
• Esquema básico de la aplicación:

Visual Basic

DLL

CLIPS
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.
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.
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).
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.
Tecnologías
CLIPS
• Arquitectura de un Sistema Experto:
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)
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)
)
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.
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.
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.
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.
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.
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.
Tecnologías
Pacman-Clips
• Introducción
• El juego del Pacman
• Tecnologías

• Comportamientos
• La aplicación Pacman-Clips
• Demo
• Conclusiones
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)
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
– “Cabezón”
– Directo
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
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
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.
Pacman-Clips
•
•
•
•

Introducción
El juego del Pacman
Tecnologías
Comportamientos

• La aplicación Pacman-Clips
• Demo
• Conclusiones
La aplicación Pacman-Clips
La aplicación Pacman-Clips
Personalización del juego con los menús:
• Juego
• Configuración
• Ayuda
La aplicación Pacman-Clips
Menú Configuración
• Sonido (sí/no)
• Elección de los fantasmas
La aplicación Pacman-Clips
Menú Configuración
• Sonido (sí/no)
• Elección de los fantasmas
• Elección personalidad fantasmas
La aplicación Pacman-Clips
Menú Configuración
• Sonido (sí/no)
• Elección de los
fantasmas
• Elección
personalidad de
los fantasmas
• Ficheros Clips
Pacman-Clips
•
•
•
•
•

Introducción
El juego del Pacman
Tecnologías
Comportamientos
La aplicación Pacman-Clips

• Demo
• Conclusiones
Demo
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)
Pacman-Clips
•
•
•
•
•
•

Introducción
El juego del Pacman
Tecnologías
Comportamientos
La aplicación Pacman-Clips
Demo

• Conclusiones
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)
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).
Proyecto Pacman-Clips

GRACIAS

Weitere ähnliche Inhalte

Ähnlich wie Proyecto Pacman-Clips

Screencast aprende python - parte 1
Screencast   aprende python - parte 1Screencast   aprende python - parte 1
Screencast aprende python - parte 1Noe Nieto
 
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08Ramiro Nahuel Pol
 
Tercera entrega de proyecto
Tercera entrega de proyectoTercera entrega de proyecto
Tercera entrega de proyectoJuan Garza
 
Bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015
Bend the developers to your will  - miguel tarascó @ tarlogic - rooted 2015Bend the developers to your will  - miguel tarascó @ tarlogic - rooted 2015
Bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015atarasco
 
prueba de informatica en word
prueba de informatica en word prueba de informatica en word
prueba de informatica en word alisson202016
 
Coding Dojo, Campus Party México 2011
Coding Dojo, Campus Party México 2011Coding Dojo, Campus Party México 2011
Coding Dojo, Campus Party México 2011Domingo Suarez Torres
 
Sesion 01 _version_finalok__31124____37877__
Sesion 01 _version_finalok__31124____37877__Sesion 01 _version_finalok__31124____37877__
Sesion 01 _version_finalok__31124____37877__Ian Brady
 
6. caso de éxito press star videojuegos
6. caso de éxito press star   videojuegos6. caso de éxito press star   videojuegos
6. caso de éxito press star videojuegosProColombia
 
Mod 1 internet guión
Mod 1 internet guiónMod 1 internet guión
Mod 1 internet guiónpepinux
 
Clase 8 algoritmos_y_programas
Clase 8 algoritmos_y_programasClase 8 algoritmos_y_programas
Clase 8 algoritmos_y_programasDr.Ing. Uriel
 
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfCEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfLuis Beltran
 
Argentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting
 

Ähnlich wie Proyecto Pacman-Clips (20)

Screencast aprende python - parte 1
Screencast   aprende python - parte 1Screencast   aprende python - parte 1
Screencast aprende python - parte 1
 
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
 
Tercera entrega de proyecto
Tercera entrega de proyectoTercera entrega de proyecto
Tercera entrega de proyecto
 
IA en Videojuegos
IA en VideojuegosIA en Videojuegos
IA en Videojuegos
 
Bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015
Bend the developers to your will  - miguel tarascó @ tarlogic - rooted 2015Bend the developers to your will  - miguel tarascó @ tarlogic - rooted 2015
Bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015
 
prueba de informatica en word
prueba de informatica en word prueba de informatica en word
prueba de informatica en word
 
01 Introducción a AS3
01 Introducción a AS301 Introducción a AS3
01 Introducción a AS3
 
Inteligencia Artificial.pdf
Inteligencia Artificial.pdfInteligencia Artificial.pdf
Inteligencia Artificial.pdf
 
Coding Dojo, Campus Party México 2011
Coding Dojo, Campus Party México 2011Coding Dojo, Campus Party México 2011
Coding Dojo, Campus Party México 2011
 
Sesion 01 _version_finalok__31124____37877__
Sesion 01 _version_finalok__31124____37877__Sesion 01 _version_finalok__31124____37877__
Sesion 01 _version_finalok__31124____37877__
 
6. caso de éxito press star videojuegos
6. caso de éxito press star   videojuegos6. caso de éxito press star   videojuegos
6. caso de éxito press star videojuegos
 
Mod 1 internet guión
Mod 1 internet guiónMod 1 internet guión
Mod 1 internet guión
 
Taller de scratch
Taller de scratchTaller de scratch
Taller de scratch
 
Taller de scratch
Taller de scratchTaller de scratch
Taller de scratch
 
Clase 8 algoritmos_y_programas
Clase 8 algoritmos_y_programasClase 8 algoritmos_y_programas
Clase 8 algoritmos_y_programas
 
S7 hack-hacking con google bing y shodan p3
S7 hack-hacking con google bing y shodan p3S7 hack-hacking con google bing y shodan p3
S7 hack-hacking con google bing y shodan p3
 
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfCEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
 
Argentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimo
 
Betabeers BCN
Betabeers BCNBetabeers BCN
Betabeers BCN
 
Octavo
OctavoOctavo
Octavo
 

Mehr von Juan Antonio Romero García (6)

Cuidatel: Cuidadoras en red
Cuidatel: Cuidadoras en redCuidatel: Cuidadoras en red
Cuidatel: Cuidadoras en red
 
Cooperativa 2.0
Cooperativa 2.0Cooperativa 2.0
Cooperativa 2.0
 
Pizarra en el recuerdo
Pizarra en el recuerdoPizarra en el recuerdo
Pizarra en el recuerdo
 
Guadalinfo y Guadalpyme
Guadalinfo y GuadalpymeGuadalinfo y Guadalpyme
Guadalinfo y Guadalpyme
 
194 pizarra auto
194 pizarra auto194 pizarra auto
194 pizarra auto
 
194 cumpleaños de Pizarra
194 cumpleaños de Pizarra194 cumpleaños de Pizarra
194 cumpleaños de Pizarra
 

Kürzlich hochgeladen

PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfRaulGomez822561
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxhenarfdez
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 

Kürzlich hochgeladen (20)

Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 

Proyecto Pacman-Clips

  • 1. Proyecto Pacman-Clips Juan A. Romero García Dirigido por: Lawrence Mandow Andaluz Realizado por: Málaga, Diciembre 2013
  • 2. Pacman-Clips • • • • • • • Introducción El juego del Pacman Tecnologías Comportamientos La aplicación Pacman-Clips Demo Conclusiones
  • 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. 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. 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. 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. 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. 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. Pacman-Clips • Introducción • El juego del Pacman • • • • • Tecnologías Comportamientos La aplicación Pacman-Clips Demo Conclusiones
  • 10. El juego del Pacman
  • 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. 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. 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. Pacman-Clips • Introducción • El juego del Pacman • Tecnologías • • • • Comportamientos La aplicación Pacman-Clips Demo Conclusiones
  • 15. Tecnologías ESTUDIO PREVIO • Esquema básico de la aplicación: Visual Basic DLL CLIPS
  • 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. 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. 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. 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.
  • 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. 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. 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. 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. 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. 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. 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. 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.
  • 30. Pacman-Clips • Introducción • El juego del Pacman • Tecnologías • Comportamientos • La aplicación Pacman-Clips • Demo • Conclusiones
  • 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. 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. 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. 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. 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. 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. Pacman-Clips • • • • Introducción El juego del Pacman Tecnologías Comportamientos • La aplicación Pacman-Clips • Demo • Conclusiones
  • 39. La aplicación Pacman-Clips Personalización del juego con los menús: • Juego • Configuración • Ayuda
  • 40. La aplicación Pacman-Clips Menú Configuración • Sonido (sí/no) • Elección de los fantasmas
  • 41. La aplicación Pacman-Clips Menú Configuración • Sonido (sí/no) • Elección de los fantasmas • Elección personalidad fantasmas
  • 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. Pacman-Clips • • • • • Introducción El juego del Pacman Tecnologías Comportamientos La aplicación Pacman-Clips • Demo • Conclusiones
  • 44. Demo
  • 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. Pacman-Clips • • • • • • Introducción El juego del Pacman Tecnologías Comportamientos La aplicación Pacman-Clips Demo • Conclusiones
  • 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. 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).