У меня есть массив с несколькими узлами, каждый из которых имеет свои оценки H, G и F.
Я получаю оценки H и G из методов, называемых calculateGscore() и calculateHscore(), которые оба возвращают двойное значение, оценка F - H+G;
У меня есть ArrayList с открытыми узлами, и мне нужно найти узел с наименьшим показателем F, но я не знаю, как это сделать, открытый массив может иметь в нем от 1 до 4 узлов, движение диаганола не разрешено.
Теперь у меня есть цикл for, например:
for(int i = 1; i < open.size(); i++){
Gscore = open.get(i).getGscore(); // these methods are in the Node class.
Hscore = open.get(i).getHscore();
Fscore = Gscore + Hscore;
if(Fscore < (calculateGscore(open.get(i-1)) + calculateHscore(open.get(i-1)))){ // these methods are in the pathFinder class.
closed.add(open.get(i));
}
else{
closed.add(open.get(i-1));
open.remove(i-1);
}
}
но это не работает, если в открытом списке 4 узла, то он добавляет 2 узла в закрытый список вместо единственного нижнего.
У меня это как задание, поэтому я не могу изменить какой-либо код в классе Node, только в классе pathfinder.