Inteligencia artificial para videojuegos/Detective en escena del crimen nocturna
Esta practica tratará de poner en práctica los conocimientos del Bloque 3 y el Taller 3 de la asignatura de Inteligencia artificial para videojuegos.
Motivación
editarEn esta práctica implementaremos una serie de agentes racionales que serán capaces de percibir, moverse e interactuar con el entorno en el que se hayan.
Enunciado
editarEn ésta práctica habrá que diseñar e implementar un programa prototipo de IA que consista en un agente investigador capaz de vigilar o explorar de forma segura el entorno de juego. Hay una serie de reglas:
- El agente comenzará en la casa y desconoce completamente su entorno. Podrá moverse solo en direcciones: Norte, Sur, Este y Oeste
- El agente oirá un grito y saldrá a investigar. Es aquí donde comenzará el programa.
- Es de noche y el agente lleva una linterna que solo le permite ver la casilla en la que se encuentra.
- En el tablero habrá agujeros. Si se cae en dichos agujeros el agente muere. Dichos agujeros están rodeados en Norte, Sur, Este y Oeste por barro, para que el agente pueda intuir donde se hayan los agujeros.
- El agente buscará el cadáver y el arma del homicidio.
- El cadáver estará rodeado en N, S, E y O por sangre. Al lado de la sangre (1 casilla) se encuentra el arma.
- Una vez encontrados arma y cuerpo, el agente ha de retroceder a la casa con el arma, la ubicación del cuerpo y el numero de pasos hasta el cadáver.ç
En cuanto al entorno de prueba y su configuración:
- El programa se inicia con la casa situada y todas las casillas normales.
- Primero, se pide al usuario ubicar el cadáver en una casilla donde no está la casa. Acto seguido las 4 casillas colindantes al cadáver se marcan como casillas con sangre. El arma se sitúa aleatoriamente a 2 casillas del cadáver.
- Después se nos pide poner agujeros (más de uno) en una casilla que no tenga ni casa ni cadaver. Una vez situados, las cuatro casillas colindantes al agujero se marcan como barro. Nota: Pueden existir casillas de barro y de sangre.
- Por último, hay un control de Ver/Pausar para lanzar los pasos del agente cada 0,5 segundos y un botón de Reinicio. El mapa se mostrará con una iluminación tenue salvo en la casilla del agente.
- Si el agente cae en un agujero el prototipo quedará en pausa.
Restricciones especiales
editar- Tanto en el prototipo implementado como en la memoria del mismo se debe usar el término agente racional.
- Habrá de separarse el código del entorno del código del agente.
- Se usará lógica proposicional (simple) para la base del conocimiento y para las inferencias.
- Se mostrarán las métricas internas.
Pistas y Consejos
editar- La implementación del agente puede hacerse en C# o puede utilizarse Bolt
Referencias y Ampliaciones
editar- Capítulo Logical Agents del A.I.M.A. sobre el Mundo de Wumpus (https://github.com/aimacode)
- Complicar la lógica o meter enemigos
- Bolt para Unity
- Game Maker’s Toolkit (Mark Brown)
Participantes
editar- Manuel Hernández Nájera-Alesón