Add a dungeon level generator, which: 1. generates an infinite sequence of rectangular rooms within the dimensions of the level 2. removes any duplicates from that sequence 3. Generates a graph from the delaunay triangulation of the centerpoints of those rooms 4. Generates the minimum-spanning-tree of that delaunay triangulation, with weights given by line length in points 5. Adds back a subset (default 10-15%) of edges from the delaunay triangulation to the graph 6. Uses the resulting graph to draw corridors between the rooms, using a random point on the near edge of each room to pick the points of the corridors
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Haskell
		
	
	
	
	
	
| import Test.Prelude
 | |
| import qualified Xanthous.Data.EntityCharSpec
 | |
| import qualified Xanthous.Data.EntityMapSpec
 | |
| import qualified Xanthous.Data.EntityMap.GraphicsSpec
 | |
| import qualified Xanthous.DataSpec
 | |
| import qualified Xanthous.Entities.RawsSpec
 | |
| import qualified Xanthous.GameSpec
 | |
| import qualified Xanthous.Generators.UtilSpec
 | |
| import qualified Xanthous.MessageSpec
 | |
| import qualified Xanthous.OrphansSpec
 | |
| import qualified Xanthous.Util.GraphicsSpec
 | |
| import qualified Xanthous.Util.GraphSpec
 | |
| import qualified Xanthous.Util.InflectionSpec
 | |
| import qualified Xanthous.UtilSpec
 | |
| 
 | |
| main :: IO ()
 | |
| main = defaultMain test
 | |
| 
 | |
| test :: TestTree
 | |
| test = testGroup "Xanthous"
 | |
|   [ Xanthous.Data.EntityCharSpec.test
 | |
|   , Xanthous.Data.EntityMapSpec.test
 | |
|   , Xanthous.Data.EntityMap.GraphicsSpec.test
 | |
|   , Xanthous.Entities.RawsSpec.test
 | |
|   , Xanthous.GameSpec.test
 | |
|   , Xanthous.Generators.UtilSpec.test
 | |
|   , Xanthous.MessageSpec.test
 | |
|   , Xanthous.OrphansSpec.test
 | |
|   , Xanthous.DataSpec.test
 | |
|   , Xanthous.UtilSpec.test
 | |
|   , Xanthous.Util.GraphicsSpec.test
 | |
|   , Xanthous.Util.GraphSpec.test
 | |
|   , Xanthous.Util.InflectionSpec.test
 | |
|   ]
 |