Simplified BFS.getPathTo()

This commit is contained in:
Yair Morgenstern 2019-07-12 15:40:03 +03:00
parent d9942aec7c
commit 0fe3de0d50

View file

@ -39,11 +39,11 @@ class BFS(val startingPoint: TileInfo, val predicate : (TileInfo) -> Boolean){
val path = ArrayList<TileInfo>()
path.add(destination)
var currentNode = destination
while(currentNode != startingPoint){
tilesReached[currentNode]?.let {
currentNode = it
path.add(currentNode)
} ?: return ArrayList() // destination is not in our path
while(currentNode != startingPoint) {
val parent = tilesReached[currentNode]
if (parent == null) return ArrayList()// destination is not in our path
currentNode = parent
path.add(currentNode)
}
return path
}