From ed103c30fea44348e568a4a7f8832c2d16772314 Mon Sep 17 00:00:00 2001 From: Bryson Zimmerman Date: Thu, 14 Nov 2024 18:09:49 -0500 Subject: [PATCH] Fixed typo that called the wrong backing data structure, added competitive timekeeping --- src/main/kotlin/ArrayBackedPathfinder.kt | 2 +- src/main/kotlin/Main.kt | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/ArrayBackedPathfinder.kt b/src/main/kotlin/ArrayBackedPathfinder.kt index 3961431..7c79b8c 100644 --- a/src/main/kotlin/ArrayBackedPathfinder.kt +++ b/src/main/kotlin/ArrayBackedPathfinder.kt @@ -79,7 +79,7 @@ object ArrayBackedPathfinder { } private fun fValue(prospect: Tile, end: Tile): Int { - return hValue(prospect, end).plus(MapBackedPathfinder.gVals.get(prospect) ?: 0) + return hValue(prospect, end).plus(gVals.get(prospect) ?: 0) } private fun hValue(prospect: Tile, end:Tile): Int { diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt index 2df9037..94ec68e 100644 --- a/src/main/kotlin/Main.kt +++ b/src/main/kotlin/Main.kt @@ -9,19 +9,33 @@ class HierarchicalPathfinding { @JvmStatic fun main(args: Array) { val n = 1000 + println("Building maze") + var startTime = System.currentTimeMillis() buildMaze(n) + var endTime = System.currentTimeMillis() + val buildMazeTime = endTime - startTime println("Pathfinding") - var startTime = System.currentTimeMillis() + + startTime = System.currentTimeMillis() MapBackedPathfinder.generatePath(Tile(0, 0), Tile(n-1, (n-1))) - var endTime = System.currentTimeMillis() - val aStarMs = endTime - startTime + endTime = System.currentTimeMillis() + val MapBackedPathfinderTime = endTime - startTime + + World.tiles.scrubDirections(listOf(Directions.FRONTIER, Directions.INPATH, Directions.NOPATH)) + + startTime = System.currentTimeMillis() + ArrayBackedPathfinder.generatePath(Tile(0, 0), Tile(n-1, (n-1))) + endTime = System.currentTimeMillis() + val ArrayBackedPathfinderTime = endTime - startTime println(World.toString()) println(n*n) - println((endTime - startTime).toString() + "ms") + println("Maze build time: ${buildMazeTime} ms") + println("HashMap-Backed Pathfinder time: ${MapBackedPathfinderTime}ms") + println("Array-Backed Pathfinder time: ${ArrayBackedPathfinderTime} ms") } //Clear the maze of pathfinding markers before running another pathfinding algorithm