хотя наверно не лучше, заключался он в том чтобы идти как будто препятствий нет, где полученная траектория пересекается с ними, определять
контур и по наименьшей из дуг обходить.
+ не надо проверять при каждом шаге весь массив карты, а лишь один раз и только начальную траектории.
+ этот метод подойдет не только для шахматного поля, но и для простой карты, где будут функции-раектории, работающие по тому же алгоритму.
- я не уверен что это расстояние кратчайшее, точнее оно не кратчайшее, если препятствия обходить точно по контуру, а если контур будет простым, и в нем не будет лишних впадин (если убрать лишние впадины), то наверно кратчайшее..
еще я подумал что вовсе не обязательно просматривать всю карту при волновом алгоритме, при первом шаге достаточно проверить 9 клеток, на втором 25 и т.д, если подумать возможно еще удасться снизить площадь проверки массива.
пс
я прямо исследование провожу

)
ппс
как копировать массив?