%  X 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
% Y+----------------------------------+
% 0|E*                                |
% 1|  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  |
% 2|  WW                              |
% 3|  WW  WWWWWWWWWWWWWWWWWWWWWWWWWW  |
% 4|  WW  WW                      WW  |
% 5|  WW  WW  WWWWWWWW  WWWWWWWW  WW  |
% 6|  WW  WW  WW              WW  WW  |
% 7|  WW  WW  WW  WWWWWWWWWW  WW  WW  |
% 8|  WW  WW  WW  WW      WW  WW  WW  |
% 9|      WW  WW      X   WW      WW  |
% 0|  WW  WW  WW  WW      WW  WW  WW  |
% 1|  WW  WW  WW  WWWWWWWWWW  WW  WW  |
% 2|  WW  WW  WW              WW  WW  |
% 3|  WW  WW  WWWWWWWWWWWWWWWWWW  WW  |
% 4|  WW  WW                      WW  |
% 5|  WW  WWWWWWWWWWWW  WWWWWWWWWWWW  |
% 6|  WW                              |
%  +----------------------------------+
% Path length is 54

shortest_path(54).

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