И Dijkstra, и A * могут добавлять разные затраты к ребрам (= соединениям) от одной плитки к другой. Они также позволяют соединить два узла (= плитки) с более чем одним ребром, каждый из которых имеет свою стоимость.
Альтернативный режим прыжка будет означать, что существует альтернативный прямой фронт от каждого тайла к каждому тайлу на расстоянии прыжка. Но поскольку мех может либо идти, либо прыгать в повороте, стоимость использования этого края будет равна точкам перемещения всего хода плюс оставшиеся точки текущего хода, когда в этом ходу уже был ход.
Согласно вашему описанию, решение о ходьбе и беге не имеет большого значения для выбора пути, но, скорее всего, это стратегическое решение. Актер определенно может ходить, когда в текущий ход можно добраться до места назначения, не прибегая к бегу. Но в противном случае есть много факторов, таких как:
- текущий уровень тепла и вероятность участия в бою до того, как охладиться
- Трудность любых выстрелов, которые должны быть сделаны в этом раунде
- насколько стратегически важно быстро добраться до пункта назначения
Нет жесткого правила для принятия этого решения. Лучшее, что вы можете сделать, - это использовать эвристический подход. Присвойте положительные или отрицательные значения точкам всем обстоятельствам, сложите их и посмотрите, будет ли результат положительным или отрицательным.
Есть также еще один фактор при поиске пути, который вы должны учитывать: при некоторых условиях для робота может иметь смысл избегать окончания своего хода в определенных местах. Находясь в опасной зоне, использовать три поворота для перехода от А к В, но заканчивая каждый в укрытии, может быть лучше, чем использовать только два, но быть выставленным в конце каждого. А может и нет. Это зависит от обстоятельств и точной игровой механики. Опять же, это стратегическое решение, которое вы должны принять на основе эвристики. Вы можете представить это, добавив дополнительную стоимость к краям, которые заканчивают ход на опасном тайле, чтобы отговорить ИИ от этого хода.