Алгоритм поиска оптимального прохождения игрового уровня. Какой использовать?
Вообще "де-факто" алгоритмом для нахождения коротких путей является A* (a star).
В вашем случае есть ещё задача о рюкзаке, в которой порядок слаживания предметов определён маршрутом. Если нет потребности куда-то дойти, то проще всего использовать алгоритм "волны" проверяя при этом количество очков и "энергии".
В любом случае задача сводится к контролируемому поиску в ширину.
Я нашёл подходящий алгоритм для решения этой задачи: задача о ранце (knapsack problem)