diff --git a/src/main/kotlin/MazeFinder.kt b/src/main/kotlin/MazeFinder.kt index a5c5f64..e92df7f 100644 --- a/src/main/kotlin/MazeFinder.kt +++ b/src/main/kotlin/MazeFinder.kt @@ -26,8 +26,6 @@ object MazeFinder { } fun primsAlgorithm() { - - //Prime the graph with the first connection, which marks the first visited Tiles val startingTile = World.getRandomLocation() val tmpIndex = randGen.nextInt(Directions.ALL.size) @@ -72,7 +70,7 @@ object MazeFinder { current.getAdjacentTiles(false).forEach { tile -> val tileprops = World.get(tile) - if(!tileprops.isManifested()) { + if(!tileprops.isManifest()) { World.update(tile, tileprops + Directions.MANIFEST) frontier.add(tile) } diff --git a/src/main/kotlin/data/Heap.kt b/src/main/kotlin/data/Heap.kt new file mode 100644 index 0000000..33a018e --- /dev/null +++ b/src/main/kotlin/data/Heap.kt @@ -0,0 +1,60 @@ +package technology.zim.data + +class Heap { + private val dat = ArrayList() + + fun popMin(): T { + if(dat.isEmpty()) { + throw ArrayIndexOutOfBoundsException() + } + + val ret = dat.first() + + //TODO: Sift and such + return dat.first() + } + + fun popMax(): T { + if(dat.isEmpty()) { + throw ArrayIndexOutOfBoundsException() + } + + val ret = dat.last() + + return ret + } + + fun insert(value: T) { + dat.add(value) + //TODO: siftUp, siftDown + + } + + private fun siftUp() { + + } + + private fun siftDown() { + + } + + private fun delete() { + + } + + fun peekMax(): T { + if(dat.isEmpty()) { + throw ArrayIndexOutOfBoundsException() + } + + return dat.last() + } + + fun peekMin(): T { + if(dat.isEmpty()) { + throw ArrayIndexOutOfBoundsException() + } + return dat[0] + } + +} \ No newline at end of file diff --git a/src/main/kotlin/data/TileProperties.kt b/src/main/kotlin/data/TileProperties.kt index b59f073..20994e4 100644 --- a/src/main/kotlin/data/TileProperties.kt +++ b/src/main/kotlin/data/TileProperties.kt @@ -54,7 +54,7 @@ value class TileProperties(val connections: Int) { return connections and(DOWN.dir) == DOWN.dir } - fun isManifested(): Boolean { + fun isManifest(): Boolean { return connections and(MANIFEST.dir) == MANIFEST.dir }