Я любитель программист, который учится программировать. я никогда не имел какие-либо компьютерные курсы науки, так что я несладко с этой тривиальной задачей:Найти кратчайший путь в лабиринте
class Room {
String name;
ArrayList<Room> neighbors = new ArrayList<Room>();
// constructor with name
// getters
void addNeighbor(Room room) {
neighbors.add(room);
}
}
class Finder {
void findShortestPath(Room start, Room end) {
// ?
}
}
В каждом номере есть несколько соседей. Более 4, так что это не похоже на матричную задачу. Вам предоставляется конечная комната, и вы должны найти кратчайший путь из стартовой комнаты (сравнивая названия комнат). Результат должен быть "путь", как:
Start: кухня
Конец: Туалет
Путь: Кухня, гостиная, коридор, спальня, туалет
Я думаю, что я должен использовать некоторые рекурсии для комнаты, и я думаю, что я должен сэкономить, где я уже был в каком-то штабеле. Но я не знаю, как начать.
Может ли кто-нибудь из вас, ребята, помочь мне? Спасибо
http://en.wikipedia.org/wiki/A*_search_algorithm – jonmorgan
Для каждой комнаты требуются маршруты, которые можно взять за плату. Затем вы можете пересечь маршруты. –
@JakobBowyer Просто возьмите 1 как стоимость :) –