Continuing from yesterday... Is my basement a rabbit warren? Ant hill casts Visual Setup: A flat plane for the maze to be on Upright cubes (stretched) for wall panels How should they meet up? A wall around the edge might be nice I set this up already Couple notes on setup: Panels can be x_aligned or not This affects texture coordinates Panels do overlap One alignment is slightly shorter to prevent Z-fighting The floor can only be square Texture coordinates would need to be revised for rectangles Not a big job really Corners are closed 4 of the corner panels are slightly larger than the others I didn't make the textures match on corners Brick and stone make this effect more noticable We might find some other goofy texture behaviour when we start removing panels Today's main topic: Implementing Prim's Algorithm Review of the algorithm on Wikipedia Data structures: We need a way to identify nodes and edges Maze coordinates: These don't need to be the same as real coordinates They can be integers! No need for ranges with floats Python 3 is quick to change ints to floats though... Edge coordinates: They connect a node to a node Easy answer: A tuple with both node coordinates in it So an edge is described with 4 numbers Sets: Non-connected (unvisited) nodes Connected (visited) nodes Do we really need this? Edges Queue of nodes to visit, sorted by cheapness What if we randomly removed the most expensive 10 panels after we finished? Then we'd have cycles! Or simply give each panel a chance of not appearing Could we have a "ruined wall" that spawns instead? Back to minecraft: Woodland mansions often have secret rooms Can we make a secret room in our map? Maybe put a roof on it or something so we can see it? On toward buildings: What about buildings that have a sparse nature to them? Could we adjust our algorithm for that?