Prolog Proyect -- 2

Job ID: 30692813

Budget: €30 – €250 EUR

Realizar un programa en prolog para resolver un nivel del sokoban:
http://sokobano.de/wiki/index.php?title=The_rules_of_the_game
Los niveles del sokoban se simularán con la notación estándar que se puede
ver aquí:
http://sokobano.de/wiki/index.php?title=Level_format
empleando una lista de listas para simular un array bidimensional.
Los niveles iniciales del juego original se pueden ver aquí (en la notación
anterior):
http://sokobano.de/wiki/index.php?title=How_to_play_Sokoban
Se debe realizar una predicado movimiento(P,P1), que dada una posición,
P, en la notación anterior calcule en P1 todas las posibles posiciones a las
que se puede llegar moviendo una caja, es decir, los movimientos no son los
movimientos de la persona que tiene que mover las cajas, sino los movimientos
de las cajas, por lo que habrá que hacer algun predicado auxiliar para encontrar
a los lugares que puede llegar el personaje de modo que quede al lado de una
caja, y que en el movimiento siguiente la pueda desplazar.
A partir de dicho predicado, se debe realizar un predicado solucion(P,L,S)
que a partir de la posición inicial del nivel, P, y de la lista de posiciones por las
que ha pasado, L, que inicialmente será [P], calcule una solución, es decir una
posición S en la que todas las cajas están en los huecos. L se pone para evitar
”bucles”, por ejemplo mover una caja a la derecha, y después a la izquierda, y
quedarse repitiendo ese par de movimientos indefinidamente.
Related categories: Prolog