From afbffb5bf817fe44435e90996d298864c4666f6f Mon Sep 17 00:00:00 2001 From: Bryson Zimmerman Date: Thu, 7 Nov 2024 14:24:54 -0500 Subject: [PATCH] Improved random, fixed bug that resulted in priming step breaking the graph --- src/main/kotlin/MazeFinder.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/MazeFinder.kt b/src/main/kotlin/MazeFinder.kt index e92df7f..4ddc2b1 100644 --- a/src/main/kotlin/MazeFinder.kt +++ b/src/main/kotlin/MazeFinder.kt @@ -1,6 +1,7 @@ package technology.zim import it.unimi.dsi.util.XoRoShiRo128PlusRandom +import it.unimi.dsi.util.XoShiRo256PlusRandom import technology.zim.data.Directions import technology.zim.data.Tile import kotlin.collections.ArrayList @@ -18,7 +19,7 @@ import kotlin.collections.ArrayList object MazeFinder { val frontier = ArrayList() - val randGen = XoRoShiRo128PlusRandom() + val randGen = XoShiRo256PlusRandom() fun ArrayList.swapRemove(index: Int) { this[index] = this[this.lastIndex] @@ -28,8 +29,7 @@ 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) - val connectorTile = startingTile + Directions.ALL[tmpIndex] + val connectorTile = startingTile.getAdjacentTiles(false).random() //Connect the first two tiles so they're recognized as in the graph startingTile.connect(connectorTile) @@ -57,7 +57,7 @@ object MazeFinder { current.connect(inGraph) //Look around the frontier tile for unexplored tiles, add them to the frontier - manifestDestiny(current) + manifestDestiny(current) //print(World.toString()) //println("--------------------------------------------")