%  X 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
% Y+----------------------------------+
% 0|E*WW              WW          WWX |
% 1|  WW  WW  WW  WW  WW  WW  WW  WW  |
% 2|      WW  WW  WW  WW  WW  WW  WW  |
% 3|  WWWWWW  WW  WW  WW  WW  WW  WW  |
% 4|          WW  WW  WW  WW  WW  WW  |
% 5|WWWWWWWWWWWW  WW  WW  WW  WW  WW  |
% 6|              WW  WW  WW  WW  WW  |
% 7|  WWWWWWWWWWWWWW  WW  WW  WW  WW  |
% 8|                  WW  WW  WW  WW  |
% 9|  WWWWWWWWWWWWWWWWWW  WW  WW  WW  |
% 0|                      WW  WW  WW  |
% 1|  WWWWWWWWWWWWWWWWWWWWWW  WW  WW  |
% 2|                          WW  WW  |
% 3|WWWWWWWWWWWWWWWWWWWWWWWWWWWW  WW  |
% 4|                                  |
%  +----------------------------------+
% Path length is 80

shortest_path(80).

square(0, 0, entrance).
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(10, 0, unknown).
square(11, 0, unknown).
square(12, 0, unknown).
square(13, 0, unknown).
square(14, 0, unknown).
square(16, 0, exit).
square(0, 1, unknown).
square(2, 1, unknown).
square(4, 1, unknown).
square(6, 1, unknown).
square(8, 1, unknown).
square(10, 1, unknown).
square(12, 1, unknown).
square(14, 1, unknown).
square(16, 1, unknown).
square(0, 2, unknown).
square(1, 2, unknown).
square(2, 2, unknown).
square(4, 2, unknown).
square(6, 2, unknown).
square(8, 2, unknown).
square(10, 2, unknown).
square(12, 2, unknown).
square(14, 2, unknown).
square(16, 2, unknown).
square(0, 3, unknown).
square(4, 3, unknown).
square(6, 3, unknown).
square(8, 3, unknown).
square(10, 3, unknown).
square(12, 3, unknown).
square(14, 3, unknown).
square(16, 3, unknown).
square(0, 4, unknown).
square(1, 4, unknown).
square(2, 4, unknown).
square(3, 4, unknown).
square(4, 4, unknown).
square(6, 4, unknown).
square(8, 4, unknown).
square(10, 4, unknown).
square(12, 4, unknown).
square(14, 4, unknown).
square(16, 4, unknown).
square(6, 5, unknown).
square(8, 5, unknown).
square(10, 5, unknown).
square(12, 5, unknown).
square(14, 5, unknown).
square(16, 5, unknown).
square(0, 6, unknown).
square(1, 6, unknown).
square(2, 6, unknown).
square(3, 6, unknown).
square(4, 6, unknown).
square(5, 6, unknown).
square(6, 6, unknown).
square(8, 6, unknown).
square(10, 6, unknown).
square(12, 6, unknown).
square(14, 6, unknown).
square(16, 6, unknown).
square(0, 7, unknown).
square(8, 7, unknown).
square(10, 7, unknown).
square(12, 7, unknown).
square(14, 7, unknown).
square(16, 7, unknown).
square(0, 8, unknown).
square(1, 8, unknown).
square(2, 8, unknown).
square(3, 8, unknown).
square(4, 8, unknown).
square(5, 8, unknown).
square(6, 8, unknown).
square(7, 8, unknown).
square(8, 8, unknown).
square(10, 8, unknown).
square(12, 8, unknown).
square(14, 8, unknown).
square(16, 8, unknown).
square(0, 9, unknown).
square(10, 9, unknown).
square(12, 9, unknown).
square(14, 9, unknown).
square(16, 9, unknown).
square(0, 10, unknown).
square(1, 10, unknown).
square(2, 10, unknown).
square(3, 10, unknown).
square(4, 10, unknown).
square(5, 10, unknown).
square(6, 10, unknown).
square(7, 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(12, 11, unknown).
square(14, 11, unknown).
square(16, 11, unknown).
square(0, 12, unknown).
square(1, 12, unknown).
square(2, 12, unknown).
square(3, 12, unknown).
square(4, 12, unknown).
square(5, 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(14, 13, unknown).
square(16, 13, unknown).
square(0, 14, unknown).
square(1, 14, unknown).
square(2, 14, unknown).
square(3, 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(15, 14, unknown).
square(16, 14, unknown).
