У меня есть карта-сетка, и мне нужно найти кратчайший путь между двумя узлами, но этот путь должен включать несколько узлов.
Я думал о том, чтобы попробовать все перестановки, но размер карты и количество обязательных узлов будут переменными, поэтому я хотел бы использовать оптимальный алгоритм.
Карта будет примерно такой: map
-Dark brown square at Y18 is the start point
-Light brown squares from B20 to S20 are the end point (can make just one end point if needed)
-White squares are walls (you cannot go through them)
-Blue squares means that the point in front of it is a must-pass (for example, the blue square at q5-q6 means must pass zone of p5-p6)
Я собираюсь использовать Java и сделаю эту карту графом со связями между ними (например, s10 связан с s9, o10 и s11).
Большое спасибо за вашу помощь, и если у вас есть какие-либо вопросы, просто спрашивайте.