siempre he tenido la idea de que para hacer un mapa donde se respete el no atravesar las paredes, tiene que tener una representación en una matriz de la siguiente manera
x1xxxxxxxxxxxxxxxxxxxxxxx
x111xxxxxxx1xxxx111xxxxxx
x1x111111111xxxxx1xxx111x
x1xxx1xxxx1xxxx1111111xxx
x1xxx111xx1111x1xxxxx1xxx
x11xx1xxxxxxx111xxxxxxxxx
xx1xxxxxxxxxxx11111111xxx
xx1111111111xxxxx1xxx1111
xx1xxxx1xxxxxxxxx1xxxxxxx
x11xxxx1111111xxx111xxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
donde las x son "paredes", y mientras haces tu recorrido debes reconocer si a donde te diriges hay un 1 o un 0 ( lo he representado en este caso, por una x, pero lo recomendable es hacerlo con 0 y 1)
y bueno, si lo haces graficamente, entonces solo tienes que seguir la regla de tu matriz para el movimiento, eso es todo.