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 editar

En 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 editar

En é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:

  1. El agente comenzará en la casa y desconoce completamente su entorno. Podrá moverse solo en direcciones: Norte, Sur, Este y Oeste
  2. El agente oirá un grito y saldrá a investigar. Es aquí donde comenzará el programa.
  3. Es de noche y el agente lleva una linterna que solo le permite ver la casilla en la que se encuentra.
  4. 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.
  5. El agente buscará el cadáver y el arma del homicidio.
  6. El cadáver estará rodeado en N, S, E y O por sangre. Al lado de la sangre (1 casilla) se encuentra el arma.
  7. 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:

  1. El programa se inicia con la casa situada y todas las casillas normales.
  2. 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.
  3. 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.
  4. 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.
  5. 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

Participantes editar

  • Manuel Hernández Nájera-Alesón