En la práctica tres presentamos un tablero compuesto por cincuenta casillas (normal, embarrada, bloqueada, comisaría, sangre, cadáver, cuchillo...) en una matriz de 10x5. El tablero comienza con todas las casillas en "modo" normal. Colocamos la comisaría en una casilla aleatoria. Damos la opción al jugador de colocar el cuerpo en una casilla. Después puede colocar cuantos agujeros quiera. Por último, comenzarían a trabajar los algoritmos para resolver el problema.
El problema a resolver consiste en la exploración de las casillas necesarias para llegar al cadáver y al cuchillo de la manera más conservadora y segura posible. Esto conlleva a evitar exploraciones arriesgadas en las que el policía deba "saltar al vacío", pudiendo llegar a perder. Algunas configuraciones muy problemáticas serían las siguientes:
La siguiente, sería la configuración más difícil de resolver:
Sería un problema parecido al de la anterior práctica. Utilizamos A* sobre las casillas ya exploradas para la vuelta a casa. Siempre buscamos el camino que menos casillas recorra.
En esta algoritmo desechamos las casillas por las que seguro no vamos a pasar y marcamos las que conocemos seguro aunque no hayamos pasado. Algunos ejemplos visuales sobre las anteriores configuraciones (Hechas hasta que haya que arriesgarse).
Como se pueden observar en las anteriores anotaciones, hicimos nuestras propias formas de optimizar el algoritmo. Sin embargo, estamos equivocados. No siempre que tengamos tres posiciones embarradas colindantes podremos asegurar que hay agujero en el centro de las mismas. Por lo tanto habría que explorar otro camino o, si no hay más opciones arriesgar.
Este comportamiento se asemeja un poco al de una persona real. No sabremos que hay en esa casilla hasta explorarlo.
Cuando el vigilante llega al cuchillo y al cadaver, el tablero quedaría de la siguiente forma:
Utilizamos la misma implementación que en la anterior práctica. Esta vez sí funciona correctamente, no hay distinciones de costes de casillas por lo que no hay problemas al atravesar barro. Si el vigilante ha cogido el cuchillo y tiene la posición del cadáver, hay un camino seguro de vuelta.
Las funciones visuales de la práctica van a la perfección, cosa que hemos mejorado respecto a lo anterior. El A* funciona correctamente, ya que al no tener costes según el tipo de casilla, encuentra siempre el camino más corto de vuelta a la comisaría.
Puede que haya algún caso de prueba sin contemplar ya que puede haber muchas configuraciones difíciles de tratar o que las hemos pasado por alto.
Hay configuraciones que seguramente den fallos, ya que cada vez que se nos ocurría una distribución de agujeros nueva y peculiar, era objeto de darnos problema debido a la interpretación de agujero o casilla segura.