Rencana Pengujian Pengujian Black Box
final int neighborNodeX = dX + currentNode.mX; final int neighborNodeY = dY + currentNode.mY;
final long neighborNodeID = Node.calculateIDneighborNodeX, neighborNodeY;
ifIntBoundsUtils.containspXMin, pYMin, pXMax, pYMax, neighborNodeX, neighborNodeY ||
pPathFinderMap.isBlockedneighborNodeX, neighborNodeY, pEntity {
continue; }
ifvisitedNodes.indexOfKeyneighborNodeID = 0 { continue;
} Node neighborNode = openNodes.getneighborNodeID;
final boolean neighborNodeIsNew; 4. ifneighborNode == null {
neighborNodeIsNew = true; neighborNode = new NodeneighborNodeX, neighborNodeY,
pAStarHeuristic.getExpectedRestCostpPathFinderMap, pEntity, neighborNodeX, neighborNodeY, pToX, pToY;
} else { neighborNodeIsNew = false;
} 5. final float costFromCurrentToNeigbor =
pCostFunction.getCostpPathFinderMap, currentNode.mX, currentNode.mY, neighborNodeX, neighborNodeY, pEntity;
final float neighborNodeCost = currentNode.mCost + costFromCurrentToNeigbor;
ifneighborNodeCost pMaxCost { 6.
ifneighborNodeIsNew { openNodes.removeneighborNodeID;
} } else {
neighborNode.setParentcurrentNode, costFromCurrentToNeigbor;
ifneighborNodeIsNew { openNodes.putneighborNodeID, neighborNode;
} else { 7. sortedOpenNodes.removeneighborNode;
} sortedOpenNodes.enterneighborNode;
ifpPathFinderListener = null { pPathFinderListener.onVisitedpEntity,
neighborNodeX, neighborNodeY; }
} }
} }
8. visitedNodes.clear; openNodes.clear;
sortedOpenNodes.clear; 9. ifcurrentNode.mID = toNodeID {
return null; }
10. int length = 1;
Node tmp = currentNode; whiletmp.mID = fromNodeID {
tmp = tmp.mParent; length++;
} 11.
final Path path = new Pathlength; int index = length - 1;
tmp = currentNode; whiletmp.mID = fromNodeID {
path.setindex, tmp.mX, tmp.mY; tmp = tmp.mParent;
index--; }
path.set0, pFromX, pFromY; return path;
}
Gambar 4.9 Source code Algoritma A Star