%  X 0 1 2 3 4 5 6 7 8 9 0 1 2 3
% Y+----------------------------+
% 0|E*    WW      WW        WWX!|
% 1| +WW      WW      WWWW  WW +|
% 2| +WWWWWW  WW  WWWWWWWW  WW +|
% 3| + + + + +              WW +|
% 4|WWWWWWWW +WWWWWWWWWWWW  WW +|
% 5|WW       + + + + + + + + + +|
%  +----------------------------+
% Path length is 23
shortest_path(23).

square(0, 0, entrance).
square(1, 0, unknown).
square(2, 0, unknown).
square(4, 0, unknown).
square(5, 0, unknown).
square(6, 0, unknown).
square(8, 0, unknown).
square(9, 0, unknown).
square(10, 0, unknown).
square(11, 0, unknown).
square(13, 0, exit).
square(0, 1, unknown).
square(2, 1, unknown).
square(3, 1, unknown).
square(4, 1, unknown).
square(6, 1, unknown).
square(7, 1, unknown).
square(8, 1, unknown).
square(11, 1, unknown).
square(13, 1, unknown).
square(0, 2, unknown).
square(4, 2, unknown).
square(6, 2, unknown).
square(11, 2, unknown).
square(13, 2, unknown).
square(0, 3, unknown).
square(1, 3, unknown).
square(2, 3, unknown).
square(3, 3, unknown).
square(4, 3, unknown).
square(5, 3, unknown).
square(6, 3, unknown).
square(7, 3, unknown).
square(8, 3, unknown).
square(9, 3, unknown).
square(10, 3, unknown).
square(11, 3, unknown).
square(13, 3, unknown).
square(4, 4, unknown).
square(11, 4, unknown).
square(13, 4, unknown).
square(1, 5, unknown).
square(2, 5, unknown).
square(3, 5, unknown).
square(4, 5, unknown).
square(5, 5, unknown).
square(6, 5, unknown).
square(7, 5, unknown).
square(8, 5, unknown).
square(9, 5, unknown).
square(10, 5, unknown).
square(11, 5, unknown).
square(12, 5, unknown).
square(13, 5, unknown).
