Haskell - Расчет кратчайшего пути с использованием деревьев

я пытаюсь написать код на haskell, который идет из точки A в точку F в настольной игре, которая, по сути, представляет собой матрицу по кратчайшему пути.

Это доска:

AAAA
ACCB
ADEF
*
0 0 N

Робот входит в букву А внизу (где это *) и должен достичь F, в нижней части доски находятся координаты x = 0, y = 0 и указывающие на север. Координата F равна (3,0)

Хитрость в том, что он не может прыгать больше, чем на одну букву, он может переходить от A к B, B к C и т. Д., И он может проходить по буквам типа (от A до A, B к B и т. Д.)

Он может двигаться только вперед и делать повороты (влево, вправо), поэтому путь, по которому я могу перейти к F, будет

Вперед, вперед, вправо, вперед, вперед, вперед, вправо, прыжок, вправо, прыжок, вперед, влево, прыжок, влево, вперед, вперед

Как только он достигает F, все готово.

Я хочу попробовать этот подход, используя дерево

                  A
                 / \
                A   D
               / \ 
              /   \
             A     C
            / \   / \
           /   \ D   C
          A     
         / \  
        /   \ 
       A
      /
     /
    A
   / \
  B   A
 / \  
C   F 

После этого мне нужно будет только проверить правильный путь и кратчайший путь?

Проблема в том, что у меня нет такого большого опыта использования деревьев.

Не могли бы вы указать другой способ получить лучший путь?

Большое спасибо .

Ответы на вопрос(1)

Ваш ответ на вопрос